要弄清c++中的string如何工作,首先要弄清c++中的字符是如何工作的,字符是什么
#include<iostream> int main() { const char *name= "Wangtn"; //name[2]='s'; std::cin.get(); }
如果没有const,下面注释掉的代码可以正常运行,但是const表示常量,所以不能进行修改。
可以看到在内存中,字符是以ACSII形式存储在内存中的,字符串的后面以00结尾,这是字符串结束的标志。在c++中单个字符用单引号('),字符串用双引号(")。
#include<iostream> int main() { const char *name= "Wangtn"; char name2[6] = { 'W','a','n','g','t','n' }; std::cout << name2 << std::endl; //name[2]="s"; std::cin.get(); }
name2没有加上结束符0,所以打印的时候程序不知道何时终止,就会出现如下结果
如果我们做如下修改
char name2[7] = { 'W','a','n','g','t','n' ,'