3.常量
常量又称为常数,它是指在程序运行过程中值不可改变的量,例如123、2.6等。
C语言中的常量可分为整型常量、实型常量、字符常量、字符串常量和符号常量,下面分别进行讲解。
(1)整型常量
整型常量是整数类型的常量,又被称为整常数。根据不同的数制,整型常量可分为二进制整数、八进制整数、十进制整数和十六进制整数,具体示例如下。
● 二进制整数:二进制整数以0b或0B开头,如0b100、0B101011。
● 八进制整数:八进制整数以0开头,如0112、056。
● 十进制整数:十进制整数与数学中的书写方式相同,如2、−158、0。
● 十六进制整数:十六进制整数以0x或0X开头,如0x108、−0X29。
(2)实型常量
实型也称为浮点型,实型常量可被称为实数或浮点数,也就是数学中的小数。在C语言中,实型常量采用十进制表示,有两种形式:十进制小数形式和十进制指数形式,具体示例如下。
● 十进制小数形式:由数字和小数点组成(需注意的是,必须有小数点),例如12.3、−45.6、1.0等。
● 十进制指数形式:又称为科学记数法,因为计算机在输入、输出数据时无法表示上标,所以规定以字母e或E表示以10为底的指数,例如12.34e3(代表12.34×103)、−34.87e−2(代表−34.87×10-2)、0.14E4 (代表0.14× 104)等。需要注意的是,e或E之前必须有数字,且e或E后面必须为整数,例如e4、12e2.5等的写法错误。
(3)字符常量
C语言中用单引号(' ')将字符引起来作为字符常量,例如'a'、'Z'、'3'、'? '、'\n'、'\t'。字符常量分为以下两种。
● 普通字符:用单引号引起来的单个字符,例如'a'、'8'、'! '、'#'。
● 转义字符:用单引号引起来的包括反斜杠(\)的一串字符,例如'\n'、'\t'、'\0'等。转义字符表示将反斜杠后的字符转换成另外的意义,通常用来表示不能正常显示的字符。'\n'、'\t'、'\0'这3个转义字符分别表示换行、水平制表符和空字符。
(4)字符串常量
字符串常量是用一对双引号(" ")引起来的字符序列,例如"hello"、"123"、"itcast"等。字符串的长度等于字符串中包含的字符个数,例如,字符串"hello"的长度为5个字符。
字符串常量与字符常量是不同的,它们之间的主要区别有以下几点。
● 字符常量使用单引号界定,字符串常量使用双引号界定。
● 字符常量只能是单个字符,字符串常量可以包含0个或多个字符。
(5)符号常量
C语言中可以用标识符来表示常量,这种常量称为符号常量。符号常量在使用前必须先定义,其语法格式如下所示。
#define 标识符 常量
上述语法格式中,“define”是关键字,前面加符号“#”,表示这是一条预处理指令(预处理指令都以符号“#”开头),该指令称为宏定义。宏定义将在第10章进行详细讲解。
例如,将圆周率(此处取3.14)用PI表示,可写成如下形式。
#define PI 3.14
上述语句的功能是把标识符PI定义为常量3.14,定义后,程序中所有出现标识符PI的地方均用3.14进行替换。符号常量的标识符是用户自定义的。
符号常量有以下两个特点。
● 符号常量的标识符通常使用大写字母。
● 符号常量在作用域内其值不能改变,也不能被再次赋值。
使用符号常量的好处:含义清楚,并且能做到“一改全改”。