
2.6 变化的数据
在处理的数据中,除了不变的数据,还存在大量的变化或未知的数据。这种数据是真实存在的,但是其具体的数值却是无法确定的。在C语言中,我们将这种数据称为变量。
2.6.1 变量的表示

在生活中,会遇到很多的未知数据。例如,你要去商店买衣服,这里的“衣服”就是对未知数据的一种指代。因为你不知道具体要买哪一件衣服,所以统一指代为衣服,这样就更容易表达和理解,如图2.37所示。

图2.37 衣服指代要购买的东西
在C语言中,如果要处理的数据是确实存在的,但其值是不确定的,就要先给这个数据设置一个名字,用于指代这个数据。这样的数据称为变量,而设置的名称称为变量名。所以,变量只是指代的数据,而变量名只是数据的一个标签,并不会存储数据,如图2.38所示。

图2.38 变量指代未知数据
2.6.2 命名方式

在生活中,人们会按照一定的规范,对所有物体进行命名,从而方便人们交流。同样,在C语言中,设置的变量名也要遵循一定的规范。
1. 命名规范
在生活中,人们一般会以百家姓开头,再结合一到两个字组成一个名字,如张三、李四、王五六,这就是人名默认的起名规则。在C语言中,存在类似的规范,并将符合这个规范的名称称为标识符。变量名就是一种标识符。标识符的命名规范如下:
❑ 标识符只能由字母、数字和下画线(_)组成。
❑ 标识符的第一个字符只能是字母或下画线。
❑ 标识符中的字母是要区分大/小写的,即标识符A和a会被计算机识别为两个标识符。
❑ 标识符的长度最长不得超过31个字符。
2. 关键字
在C语言中,有一部分标识符被C语言本身使用了,并将这些标识符称为关键字。常见的关键字如表2.8所示。
在编写程序时,用户设置的标识符不能与关键字重复,否则会被计算机当作关键字处理,最终导致程序出错。
表2.8 常见的关键字

3. 命名建议
在对标识符命名时除了要遵循命名规范外,还要尽量做到“见名知意”。这是因为标识符不只是给计算机“看”的,也是给编程人员看的。标识符做到“见名知意”,会方便编程人员之间的沟通。
例如,为一个姓名变量设置变量名为name,为年龄变量设置变量名为age。这些变量名都可以清晰地表明了变量所指代的是何种数据。如果随意将这些变量命名为a683、_8a5,就很难理解这些变量了。命名对比如图2.39所示。

图2.39 命名对比
注意:由于汉字同音字太多,所以不建议使用汉语拼音作为变量名。尽量用英文命名变量名,这样会使程序代码的可读性更高,也有利于养成良好的变量命名习惯。
助记:name的意思为名字;age的意思为年龄。
2.6.3 声明变量

每个人在上学的第一节课可能都会经历一个过程,那就是自我介绍。自我介绍就是在告知同学和老师自己的信息,这就是一种声明行为。
在C语言中,也存在类似的声明行为。当为某个数据设置一个变量名后,要在程序中声明该变量。这个声明的目的就是告知计算机,这个标识符指代的数据可以被使用了。声明变量的语法包含数据类型与变量名两个部分,如图2.40所示。

图2.40 声明变量的语法
指定数据类型是告知计算机该数据的存储方式。所以,根据数据类型的不同,我们可以知道该数据的存储方式及取值范围。在C语言中,基本数据类型如表2.9所示。
表2.9 基本数据类型

【示例2-25】声明年龄变量age。
程序如下:

如果多个变量属于同一个数据类型,则用户可以将其一次性全部声明。每个变量名之间要使用逗号分隔。例如,int a,b声明了两个变量a与b,其数据类型均为整型。
【示例2-26】一次性声明两个变量a和b。
程序如下:
