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