啊哈C语言编程-第7课-数字的家(变量)-少儿编程教育网

上节课中我们了解到计算机使用一个个的小房子来记住数字。计算机有很多不同种类的小房子。

int a;

代表向计算机申请一个小房子,用来存放数值,小房子的名字叫作 a。int 和 a 之间有一个空格, a 的末尾有一个分号,表示这句话结束。

如果要申请多个小房子,则要在 a 后面继续加上 b 和 c,用逗号分开。例如:

int a,b,c;

这里有一个小问题,就是给申请的“小房子”起名字。原则上,你可以随便起,叫作 a 可以,叫作 b 也可以,叫作 x 也可以,名字甚至可以是多个字母的组合,例如,可以叫作 aaa,也可以叫作 abc,也可以叫作 book。也可以是字母和数字的组合,例如,a1 或者 abc123 都是可以的。当然也有一些限制,如果你想知道,请看附录 A。

到这里,可能还有很多同学想问,int 究竟是什么意思呢? 其实,int 控制小房子用来存放的数的类型,表示你目前申请的小房子只能存放整数。 int 是英文单词 integer(整数)的缩写。

如果要放小数该怎么办?

我们用 float 来申请一个小房子,用来存放小数,形式如下:

float a;

这样,小房子 a 就可以用来存放小数了,例如:

float a;

a=1.5;

printf("%f",a);

就表示申请一个用来存放小数的小房子 a,里面存放了小数 1.5。

注意:在 C 语言中,小数称作浮点数,用 float 表示。

之前我们在用 printf 语句输出整数时,使用的是“%d”。此时需要输出小数,我们要用“%f”。 好了,我们来总结一下,这里的“小房子”在我们 C 语言的专业术语中称为变量。int 和 float

说明小房子是用来存放何种类型的数,我们这里将其称为“变量类型”或者“数据类型”。 类似 int a;或者 float a;的这种形式,我们称作“定义变量”,它们的语法格式如下:

口语 小房子的类型] [小房子的名称] , [小房子的名称] ;

术语 变量的类型] [变量的名称] , [变量的名称] ;

代码 int a, b ;

现在我们知道,int a;表示申请一个用来存放一个整数的小房子 a,即定义一个整型变量 a来存放整数;而 float a;则表示申请一个用来存放一个小数的小房子 a,即定义一个浮点型(实型)变量 a 来存放浮点数(小数)。

再来看另外一个有趣的问题,代码如下:

#include <stdio.h>

#include <stdlib.h>

int main()

{

int a;

a=1;

a=2;

printf("%d",a);

system("pause");

return 0;

}

请问计算机执行完上面的代码后,将会输出 1 还是 2?

尝试过后你会发现,计算机显示的是 2,也就是说小房子 a 中的值最终为 2。通过观察代码我们可以发现,我们首先是将 1 放入小房子 a 中,紧接着又将 2 放入小房子 a 中,那么请问原来小房子中的 1 去哪里了呢?

答案是被新来的 2 给覆盖了,原来的 1 已经消失了。也就是说,小房子 a 中有且仅能存放一个值,如果多次给小房子 a 赋值的话,小房子 a 中存放的将始终是最后一次赋的值。例如:

#include <stdio.h>

#include <stdlib.h>

int main()

{

int a;

a=1;

a=2;

a=3;

a=4;

a=5;

a=6;

printf("%d",a);

system("pause");

return 0;

}

计算机运行完上面这段代码后最终将输出 6。也就是说小房子 a 中的值最终为 6,前 5 次的赋值全部被覆盖了。

一个更有意思的问题来了,请继续看下面的代码:

#include <stdio.h>

#include <stdlib.h>

int main()

{

int a ;

a=7;

a=a+1;

printf("%d",a);

system("pause");

return 0;

}

计算机运行完上面这段代码后最终将输出 8。也就是说小房子 a 中的值最终为 8。计算机在执行完 a=7 这句话后,小房子 a 中存储的值为 7,之后计算机又紧接着运行了 a=a+1。运行完 a=a+1后,小房子 a 中的值就变为 8 了。也就是说 a=a+1 的作用是把小房子 a 中的值在原来的基础上增加 1,我们来分析一下这句话。

对于 a=a+1 计算机分两步执行,这句话中有两个操作符,第一个是“+”,另一个是“=”(赋值号),因为“+”的优先级要比“=”高,因此计算机先执行 a+1,此时小房子 a 中的值仍然为7,所以 a+1 的值为 8。紧接着计算机就会执行赋值语句,将计算出来的值 8 再赋值给 a,此时 a的值就更新为 8。

好啦,猜猜下面的程序,计算机最终会输出多少?

#include <stdio.h>

#include <stdlib.h>

int main()

{

int a;

a=10;

a=a*a;

printf("%d",a);

system("pause");

return 0;

}

尝试过了吗?想一想为什么 a 最终的值为 100。

注:所有运算符的优先级详见附录 B。