注意:以下内容摘自文献[1],修改了部分内容。
1.常量:常量的值是不能改变的,一般从其字面形式即可判别是否为常量。
2.常量包括数值型常量(即常数)和字符型常量。
3.常量无unsigned型。但一个非负值的整数可以赋值给unsigned型变量,只要它的范围不超过变量的取值范围即可。例如,将50000赋给一个unsigned short int 型变量是可以的,而将70000赋值给它是不行的(将会溢出)。
4.字符常量
(1) ddd:表示1~3位八进制数所代表的字符。xhh:表示1~2位十六进制数所代表的字符。如'101'表示以八进制数101的ASCII字符,而${(101)_8}$=${(65)_{10}}$,查阅ASCII表,可知它代表字符“A”。
(2)注意' '或' 00'是代表ASCII码为0的控制字符,即“空操作符”,它广泛用于字符串中。
(3) 转义字符虽然包含两个或多个字符,但它只代表一个字符。编译系统在见到字符“”时,会接着找它后面的字符,把它处理成一个字符,在内存中只占第一个字节。
5.字符数据在内存中的存储形式及其使用方法
字符常量在内存单元中以其ASCII存储,如字符变量c1的值是'a',则在变量中存放的是'a'的ASCII码97,实际上以二进制形式存储,即01100001。既然字符数据以ASCII码存储,它的存储形式就与整数的存储形式类似。这样,在C++中字符型数据和整型数据之间就可以通用。一个字符数据可以赋值给一个整型变量,反之,一个整型数据也可以赋值给一个字符变量。也可以对字符数据进行算术运算,此时相当于对他们的ASCII码进行算术运算。
6.字符串常量:如:“Hello”,“abc”,“a+b”等。字符串常量“abc”在内存中占4个字节(而不是三个字节),如下
字符'a'的二进制形式 | 字符'b'的二进制形式 | 字符'c'的二进制形式 |