C++字符串常量总结(包含表达式必须是可修改的左值问题)
引用参考,感谢各位大佬,另外还有阅读了书籍《C++程序设计》谭浩强编著。
https://blog.csdn.net/JQ_AK47/article/details/53169799
https://www.runoob.com/w3cnote/cpp-string-array-pointer.html
https://blog.csdn.net/weixin_41498246/article/details/103322225
字符串常量与双引号
在 C 语言中,将字符串作为字符数组来处理,而C++中不是。
C++中,用双引号括起来的字符就是字符串常量,如“abc”,“hello”,“a+b”都是字符串常量。
双引号做了3件事:
1.申请了空间(在常量区),存放了字符串
2. 在字符串尾加上了’/0’
3.返回地址
例:
这里的字符串常量“Wang_li”看起来是7个字符,但是在内存中占8个字节,字符串最后自动加上了一个‘\0’作为字符串结束标志。在为字符串设置内存空间时一定要注意这一点。
字符串常量返回的是地址,而不是Wang_li\0,因此它可以赋值给指针而无法在已经定义好字符串变量后再赋值给字符串变量,后面细写。
它是常量,因此是const char[],而不是char[],