C++中对于字符数组的细节
因为有了string类,C++看起来方便了很多,但其实,C遗传过来的字符数组一样方便
看一个栗子:
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
char str1[10]="sgyzetrov";//number of letters plus 1
char str2[10]={'s','g','y','z','e','t','r','o','v','\0'};//number of letters plus 1
char str3[]="sgyzetrov";
cout<<"char str1[10]=\"sgyzetrov\";"<<"->output->"<<str1<<endl
<<"char str2[10]={'s','g','y','z','e','t','r','o','v','\\0'};"<<"->output->"<<str2<<endl
<<"char str3[]=\"sgyzetrov\";"<<"->output->"<<str3<<endl;
return 0;
}
char str1[10]="sgyzetrov";
char str2[10]={'s','g','y','z','e','t','r','o','v','\0'};/
char str3[]="sgyzetrov";
这三句是等价的。且用于存放字符串的数组其元素个数应该不小于字符串的长度加1。
输出:
Starting /home/~/build-2-1-2-Desktop_Qt_5_8_0_GCC_64bit-Debug/2-1-2...
char str1[10]="sgyzetrov";->output->sgyzetrov
char str2[10]={'s','g','y','z','e','t','r','o','v','\0'};->output->sgyzetrov
char str3[]="sgyzetrov";->output->sgyzetrov
/home/~/build-2-1-2-Desktop_Qt_5_8_0_GCC_64bit-Debug/2-1-2 exited with code 0