信奥竞赛

系列

剑指信奥 | C 语言之盒子里的礼物

盒子里有什么?

就在昨天,我们学习了第一个 C 语言程序,并且运行得到了结果 — “Hello, C!" 。

还记得我们程序的主要结构吗:

#include <stdio.h>
int main() {
    /* 我们要做的事情 */
    return0;
}
                

中间的注释部分就是将来我们要实现的功能,这里将要写下实现功能所需要的代码。

问题是,我们要实现什么功能呢?

别忘了,我们正在学习的是计算机科学,计算是必不可少的,所以今天我们的话题就是怎么用 C 语言实现我们日常的计算。

在开始实现之前,我们还需要介绍一个非常重要的概念,让我们从一个小盒子说起:

一个小盒子

要实现计算,我们都知道必须要有数字,那么问题是,我们要把数字放在哪里呢?

我们可以想象出上面那样的一个小盒子,比如我们要计算 1 加上 2 等于几,就先把数字 1 放进这个小盒子。

为了记住这里放的是 1,我们在盒子上做一个标记,比如说是 i:

带有标记 i 的小盒子

那么在 C 语言中,怎么表示这个过程呢,就是一条非常简单的语句:

int i = 1;

同样道理,我们把 2 放进一个名字为 j 的盒子:

int j = 2;

在 C 语言中,我们就把这个用来标记盒子的 i 和 j 称之为变量 variable,而把这个小盒子里的数字称为值,而这个小盒子就是在计算机内存中的一个小小的存储空间。

在大的程序中,通常会定义很多的变量,这样就有了很多的小盒子:

存放不同数据的变量空间

它们在程序运行时,都存放在计算机的随机存取存储器 RAM之中,通常我们称之为内存:

内存条

变量的含义

所以什么是变量呢?

在程序设计中,变量是指一个包含部分已知或未知数值的储存空间,以及相对应的符号名称(变量名)

Wikipedia

通俗的说,变量就是存放各种各样我们需要的数据的标志和对应的空间。

而我们在上面定义的两个变量 i 和 j 前面的 int 又是什么意思呢?

int 是英文单词 integer 整数 的简写,因为我们存放的是 1 和 2 这两个整数,所以把这两个变量定义为 int 类型。

不同的数据有着不用的数据类型 data type,因为存放每一种数据的空间大小是不一样的,就像盒子有大有小一样:

大小不一的盒子存放不同类型的数据

变量是几乎所有高级计算机语言中都有的一个非常重要的概念,在我们将来的任何一段程序中都会有它的存在。

强大的运算

既然我们定义了 i 和 j 两个变量,我们就可以开启计算机强大的计算能力了。

我们现在要求出 1 + 2 的结果,在 C 语言中写一段简单的代码就可以实现:

#include <stdio.h>

int main() {
    int i = 1;
    int j = 2;
    printf("%d", i + j);
}
                

运行的结果就是 3。

哎呀,这个太简单啦,有同学一定会说,我没上幼儿园就知道 1 + 2 = 3,没什么了不起~

当然这个计算是很简单,但如果要你计算 123 乘以 456 得多少,还能马上说出结果吗?

恐怕绝大多数同学都没法做到了,但计算机可以!

计算机的强大之处就在于它能以极快的速度,及其精准的进行各种各样的计算,而且,不知疲倦。

好了,我们就把这个问题留给聪明的你:

编写代码,计算 123 * 456 的结果。在计算机语言中,乘法用星号 * 表示。

日积月累

  • variable 变量
  • int(integer) 整形
  • data type 数据类型
  • RAM (Random Access Memory) 随机存取存储器