C++中沒有字符串對象,字符串可以看成是字符數組,不過它們之間又有區別。
簡單的來說就是區別在最后的一個元素"\0"上,它標志著一串字符是否是字符串。用字符串初始化字符數組時,"\0"附帶在后面與前面的字符一起作為字符數組的元素。
在內存中,就是根據"\0"來確認字符串,如果找不到就會沿著字符一直找下去。它占用內存空間,但是不計入串長托福代考
用字符串初始化字符數組時,系統會在字符數組的末尾自動加上一個字符"\0",因此數組的大小比字符串中實際字符的個數大。如:sizeof(str1)=strlen(str1) +1;雅思代考
如果是用字符初始化數組,則一定要把"\0"作為一個元素放在初始值表中,不然就不會成為一個字符串。
[cpp] view plaincopyprint?
char sText[5];
sText[0]='a';
sText[1]='a';
sText[2]='a';
sText[3]='a';
sText[4]='\0';
cout<<sText<<endl; //這樣輸出就是4個a
// 如果數組的第五個元素即:
sText[4]='a';
cout<<sText<<endl; //這樣輸出就是5個a和一堆亂碼,甚至跳出系統錯誤,因為沒有字符串結尾符