上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.2.4 字符串常量
字符串常量是用一组双引号括起来的若干字符序列,如"ABC"、"abc"、"1314"和"您好"等都是正确的字符串常量。
如果字符串中一个字符都没有,将其称作空字符串,字符串的长度为0,如""。
在C++中,存储字符串常量时,系统会在字符串的末尾自动加一个“\0”作为结束标志。例如,字符串“welcome”在内存中的存储形式如图2.12所示。
图2.12 结束标志“\0”为系统自动添加
学习笔记
在程序中编写字符串常量时,不必手动在一个字符串的结尾处加上“\0”结束字符,系统会自动添加。
前面介绍了有关字符常量和字符串常量的内容,那么它们之间有什么区别呢?具体体现在以下几方面。
(1)定界符的使用不同。字符常量使用的是单引号,字符串常量使用的是双引号。
(2)长度不同。上面提到字符常量只能有一个字符,也就是说,字符常量的长度是1。字符串常量的长度可以是0,但是需要注意的是,即使字符串常量中的字符只有1个,长度却不是1。例如,字符串常量H的长度为2。通过图2.13可以体会到字符串常量H的长度为2的原因。
图2.13 字符串常量H在内存中的存储方式
(3)存储方式不同。在字符常量中,存储的是字符的ASCII码值,如‘A’为65,‘a’为97;而在字符串常量中,不仅要存储有效的字符,还要存储结尾处的结束标志“\0”。
学习笔记
系统会自动在字符串常量的尾部添加一个结束字符“\0”,这就是字符串常量H的长度是2的原因。
本章提到过有关ASCII码的内容,那么ASCII码是什么呢?在C语言中,使用的字符被一一映射到一个表中,这个表被称为ASCII码表,如表2.3所示。
表2.3 十进制的ASCII码表
续表