在程序运行过程中其值可以改变的量称为 变量 。变量具有数据类型、变量名和变量值三个属性。变量在其存在期间,在内存中根据指定的类型所占据存储单元长度的不同,可以用来多次存放不同的数值。
选择一个标识符,给变量取一个名字,称为 变量名 ,变量名的命名规则与标识符完全相同。
变量名和变量值的概念不同,变量名实际上是一个符号地址,在系统对程序进行编译时,给每一个变量名分配一个具体的内存地址,变量值是对应变量名的存储单元所存放的具体的数值。如图2-1所示。
变量的 数据类型 是指变量可以存储的数据的类型,也就是变量值的数据类型,详细说明参见2.2节。
程序运行时从变量中取值,实际上是通过变量名找到相应的内存地址,从与内存地址相对应的存储单元中读取数据。
在程序中变量名在其有效范围内不能更改,但变量值却可以动态更新。
变量定义后并没有确定的值,或者说值是随机的。但可以采用某些方法给变量赋值,当再次给变量赋值时,新值将替代旧值。
程序在使用变量前,先要对变量进行定义,即必须“先定义,再赋值,后使用”。
图2-1 变量名、变量值和存储单元的关系
变量的定义是在程序中指定变量的名字和数据类型。在编译时根据变量的数据类型,系统分配相应大小的存储单元。
变量一般是在函数开头的声明部分定义。(也可在函数中的某一复合语句内定义,但变量起作用的范围只限于它所在的复合语句,详细说明参见第7章。)变量定义的一般形式如下:
例如:
在C语言中,定义变量的同时还可以为变量指定初值,这个过程称为 变量的初始化 。例如:
这种定义变量的方式与下面的语句等价:
也可以对被定义变量的一部分赋初值。例如:
不可以用下面的方式对几个变量同时赋同一个初值:
但下面的做法是允许的:
微视频2-1 变量