-
1 文字讲解
-
2 视频讲解
-
3 过关测试
一、变量
1、变量的定义
在程序的运行过程中,值可以改变的量称为变量。
2、变量与变量名的含义
每个变量都有一个名字,称为变量名。每个变量都必须进行变量说明,指明变量的类型,相当于给变量进行注册。编译时,系统根据变量的类型,在内存中分配合适大小的存储空间,这样就可以将该变量名与其对应的存储空间联系起来,所以,引用变量的存储空间是通过变量名来引用的。
例如变量说明:
int k=50;
如下图所示:

其中,int是类型标识符,k是变量名,50是变量k的初值。可以把变量理解成内存中的某一段存储空间。上面的变量说明表示将此段内存空间命名为k,而50则是存放在这段存储空间中的数值,需要引用这段存储空间,要通过变量名k。
3、变量名的命名规则
变量名和符号常量名的命名方法相同,都是用标识符表示。标识符就是一个名字,其命名必须按照一定的规则进行,只能由字母、数字和下划线组成,且第1个字符必须为字母或下划线,不允许使用数字。如下面是合法的标识符:
Class_1、_abcl、id、a1b2、sum、 total
而下面是不合法的标识符:
a b // 标识符不能含空格符
1a // 标识符不能以数字开头
#abc // 标识符不能使用“#”
xyz-1 // 不要把减号“-”和下划线“_”混淆
注意:大写字符和小写字符被认为是两个不同的字符。如a1和A1是两个不同的标识符,如果作为变量,则是两个不同的变量,不能使用保留字。
保留字 是指系统中已经存在的固定好的名字
习惯上,变量名用小写字母表示。为增加可读性,所用标识符最好能“见名知义”。“见名知义”就是指看到该变量名,马上就能联想到它可能存储什么样的数据。如表示“姓名”的变量可用英文单词name,或汉语拼音的缩写xm。
4、变量与符号常量的区别
变量和符号常量的不同之处在于:变量的值可以改变,而符号常量的值不可以改变。例如,说明了“#define G 9.8" 和“int k=50;”后,执行k=60;”是允许的,而执行“G=77;”则是错误的。
例2-1 定义整型变量和字符型变量。
int i, j,k;
char c1,c2;
上面两行语句定义了3个int型变量i、j、k和2个字符型变量c1、c2。
例2-2 定义浮点型变量
float x1, x2; //定义两个单精度浮点型变量
double z1, z2; //定义两个双精度变量
float x;
double y;
x=123456.789 //给变量赋初值
y=1.23456789E5;
上面定义了几个浮点型变量。
上面语句中,x为单精度变量,y为双精度变量,第5行赋给变量x的值为9位,超过了其有效位数的范围,最后两位将被丢弃,但进行四舍五入,x的实际值是123456.8;而y的有效位数是17,所以能够接收9位数字。
注意:浮点数由“精度”和“范围”确定。C语言中 float的有效位数是7,即精确到有效数字的第7位,每个单精度变量占用4个字节,有效值范围为 ~
; double的有效位数是17,即精确到有效数字的第17位,每个双精度变量占用8个字节,有效值范围为
~
二、拓展资料
1、验证变量所占用存储空间
#include <stdio.h>
main()
{
int a;
int k = 50;
a = sizeof(k);
printf("%d,%d\n",k,a);
}
2、验证浮点数的精度
#include <stdio.h>
main()
{
float x=0.123456789123456789123;
double y=0.123456789123456789123;
printf("%30.20f,%30.20f\n", x, y);
}
运行结果如下:

由程序运行结果得出:float精确到有效数字的第7位,double精确到有效数字的第17位。
3、验证浮点数的范围
#include <stdio.h>
main()
{
float x=0.123e110;
double y=0.123e110;
printf("%e,%e\n", x, y);
}
运行结果如下:

由程序运行结果得出:double表示的范围比float大。

