C语言程序设计教程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2 标识符、常量和变量

2.2.1 字符集

字符(Character)是组成语言最基本的元素。C 语言的字符集由字母、数字、空白符、标点和特殊字符组成。

① 字母:26个英文字母,包括大小写共52个。

② 数字:0~9共10个。

③ 空白符:空格符、制表符、换行符统称为空白符,共3个。

④ 标点和特殊字符:如+ - * / % _ . = < > & | ( ) [ ] { } ; ? : ' " ! # 等共25个。

2.2.2 标识符

标识符(Identifier)是一个由有限个有效字符组成的序列,在 C 语言中只起标识作用,可用作符号常量名、变量名、函数名、数组名、文件名等。

1.标识符的构成规则

C语言允许用作标识符的有效字符包括:

● 26个英文字母,包括大小写

● 数字0,1,…,9

● 下划线

合法的标识符必须由字母(A~Z,a~z)或下划线(_)开头,后面可以跟随任意的字母、数字或下划线。C语言标识符的长度(即一个标识符允许包含的字符个数)受C语言编译系统的限制,比如,某C语言编译系统规定标识符的有效长度是31,若超过31个字符,则后面的字符无效。不同的C语言编译系统规定的标识符的长度可能会不同,学习者在使用标识符时应当了解所用编译系统的规定。

合法的标识符:student,a10,Ij,_5n,x_sum

不合法的标识符:30d 错在以数字开头

a$n 错在出现“$”

n abc 错在中间有空格

2.C语言标识符的分类

标识符是形成C语言代码的基础。C语言中的标识符有3种类型:关键字、预定义标识符和用户标识符,每种标识符都有自己的要求。

(1)关键字

C 语言中有一些标识符被称为关键字或保留字,在系统中具有特殊用途,只能以特定的方式用在特定的地方,如果试图将关键字用于其他用途,编译程序将产生一个编译错误。例如,标识符int是整型数据类型关键字。

表2.1列出了C语言完整的关键字列表,随着教材内容的深入,读者将理解在什么地方、为什么和如何使用这些关键字。

表2.1 C语言关键字

(2)预定义标识符

C 语言中有些标识符虽然不是关键字,但总是以固定的形式用于专门的地方,使用较多的预定义标识符是C语言标准函数(参见附录B)。例如,printf是C语言提供的标准函数名, define是C 语言提供的编译预处理命令等。因此,用户也不要把它们当作一般标识符使用,以免造成混乱。

(3)用户标识符

用户标识符是由用户根据需要定义的标识符。一般用于给变量、符号常量、数组、函数、指针、文件等命名。在程序中使用用户标识符时除了要遵守标识符的构成规则外,还应注意以下两点。

① 大小写字母有不同的含义,例如,sum、Sum和SUM是3个不同的标识符。习惯上,变量名用小写字母表示,符号常量名用大写字母表示。

② 在构造用户标识符时,应注意做到“见名知意”,即选用有含义的字符组合(如英文单词或汉语拼音)作为标识符,以增加程序的可读性。例如,表示日期可用day,表示长度可用length,表示和可用sum等。

2.2.3 常量

常量是指在程序运行过程中其值不发生改变的量。在C语言中,有直接常量(或字面常量)和符号常量两种常量。直接常量可以从其字面形式上区分其数据类型,如12和-10为整型常量,2.5和-10.2为实型常量。

符号常量是用用户标识符表示的常量。通常习惯用大写字母表示符号常量。符号常量在使用之前必须在程序开头定义。符号常量的定义形式为:

            #define   符号常量名  常量

例如:

            #define  PRICE  30

符号常量一旦定义,凡是本程序中出现PRICE的地方,系统均用30来替换。

【例2.1】 已知某产品的单价和数量,求总价格。

程序代码如下:

            #define PRICE 30
                /* 定义用户标识符PRICE为符号常量,表示商品的单价为30 */
            #include "stdio.h"
            main( )
            {
              int num,total;   /* 变量num表示产品数量,变量total表示总价格 */
              num=10;            /* 程序中出现的数值10为直接常量 */
              total=num*PRICE;    /* PRICE为符号常量 */
              printf("total=%d\n",total);
            }

程序运行结果为:

            total=300

注意:

① 定义符号常量时。必须以 # 开始,在 #define 命令行的最后不能加分号。有关#define命令的使用,将在第7章详细介绍。

符号常量所代表的值是不能改变的。正确使用符号常量可以增强程序的可读性和可维护性。

2.2.4 变量

变量是指在程序执行过程中其值可以改变的量。在源程序中,变量用标识符标识,表示变量的标识符称为变量名。

图2.2 变量名、存储单元和变量的值的关系

在内存中,变量和一个存储单元相对应,该存储单元用于存放变量所代表的数据值。变量名、存储单元和变量的值三者之间的关系如图2.2所示。变量所对应存储单元的大小(组成一个存储单元的字节数)取决于变量值的数据类型,所以每个变量都与一个数据类型相联系,类型决定了变量在内存中占据的存储空间的大小,也就决定了变量可以取值的范围和变量值可以参加的运算。所以变量名、变量类型和变量的值是一个变量的三要素。

在C语言程序中出现的任何一个变量必须首先确定其数据类型,即必须遵循“先定义,后使用”的原则,否则会在编译时出错。

变量定义的一般形式为:

            类型标识符  变量名1,变量名2,……;

变量的定义一般出现在函数的开头部分,如例2.1主函数中的语句“int num,total;”使用类型标识符int定义了两个整型变量num和total,系统分别为它们各自分配由4个字节组成的存储单元,以存放整型数据。

注意:一个定义语句必须以一个“;”结束。