标签:清华大学 字符串 style isp 系统 ascii表 signed 字符 超过
注意:以下内容摘自文献[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)注意‘\0‘或‘\000‘是代表ASCII码为0的控制字符,即“空操作符”,它广泛用于字符串中。
(3) 转义字符虽然包含两个或多个字符,但它只代表一个字符。编译系统在见到字符“\”时,会接着找它后面的字符,把它处理成一个字符,在内存中只占第一个字节。
5.字符数据在内存中的存储形式及其使用方法
字符常量在内存单元中以其ASCII存储,如字符变量c1的值是‘a‘,则在变量中存放的是‘a‘的ASCII码97,实际上以二进制形式存储,即01100001。既然字符数据以ASCII码存储,它的存储形式就与整数的存储形式类似。这样,在C++中字符型数据和整型数据之间就可以通用。一个字符数据可以赋值给一个整型变量,反之,一个整型数据也可以赋值给一个字符变量。也可以对字符数据进行算术运算,此时相当于对他们的ASCII码进行算术运算。
6.字符串常量:如:“Hello”,“abc”,“a+b”等。字符串常量“abc”在内存中占4个字节(而不是三个字节),如下
字符‘a‘的二进制形式 | 字符‘b‘的二进制形式 | 字符‘c‘的二进制形式 | \0 |
编译系统会在字符串最后自动加一个:‘0’作为字符串结束的标志。但‘\0‘并不是字符串的一部分,它只作为字符串结束的标志。如 cout << "abc" << endl; 输出为:abc共三个字符。
特别的例子:字符串常量"abc\n"包含几个字符?包含4个字符,‘\n‘是一个转义字符,但是该字符串常量占5个字节(包含一个‘\0‘字符)。"abc\\n"包含5个字符,占6个字节。
7. 符号常量
#define PRICE 30;
则PRICE就是符号常量。符号常量在C程序中用得较多,在C++中常用常变量(见变量)而较少使用符号常量。
参考文献
[1]谭浩强.C++程序设计[M].北京:清华大学出版社.
标签:清华大学 字符串 style isp 系统 ascii表 signed 字符 超过
原文地址:https://www.cnblogs.com/chen-hw/p/11614209.html