上QQ阅读APP看书,第一时间看更新
2.2.2 变量
在程序运行过程中,其值可变的量称为变量,如例2.1中的h、f、chicken、rabbit,例2.2中的i、t、s。一个变量必须有一个名称,以便被引用;在内存中占据一定的存储单元,在该存储单元中存放变量的值。请注意变量名和变量值是两个不同的概念。变量名在程序运行的过程中不会改变,而变量值则可以发生变化。变量名实际上是以一个名称对应代表一个地址,在对程序编译、连接时由编译系统给每一个变量名分配对应的内存地址。从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据,如图2.1所示。
图2.1 变量名和变量值
变量名是一种标识符,标识符是程序中用来为符号常量、变量、函数、数组、文件等命名的有效字符序列。标识符的命名规则如下。
(1)只能由字母、数字和下画线组成。
(2)第一个字符必须为字母或下画线。
(3)不能使用C语言中的关键字。
(4)区分大小写字母,sum和Sum是不同的标识符。
在程序中,常量是可以不经说明而直接引用的,而变量则必须进行强制定义,即“先定义,后使用”。这样做的目的有以下几点。
(1)凡未被事先定义的,不可作为变量名,这样就能保证程序中的变量名使用得正确。例如,若有以下变量定义:
int count;
而在程序中将变量名count误写成了conut,如:
conut = 5;
则在程序编译时将会检查出conut未经定义,不作为变量名处理,并显示相应的出错提示信息,便于用户发现错误,避免变量名使用时出错。
(2)一个变量被指定为某一确定的数据类型,在编译时就能为其分配相应的存储单元。如定义a和b为单精度变量,则为a和b各分配4字节,并按整型方式存储数据。
(3)一个变量被指定为某一确定的数据类型,便于在编译时据此检查所进行的运算是否合法。如整型变量可以进行求余运算,而实型变量则不能。