'\0’是运行到字符串尾结束,由编译器自动加上
执行如下代码段
char str[] = "hello c++";
cout << str<<"\n";
cout << "length: " << sizeof(str)<<"\n";
输出为:
hello c++
length: 10
其长度是字符串长度+1,编译器自动加上‘\0’;
执行以下代码段
char str2[] = { 'a','c','\0'};
cout << str2 << "\n";
cout << "length: " << sizeof(str2) << "\n";
输出为:
ac
length: 3
执行以下代码段
char str3[] = { 'a','c'};
cout << str3 << "\n";
cout << "length: " << sizeof(str3) << "\n";
输出为:
ac烫烫烫烫烫ac
length: 2
由于末尾未赋值‘\0’,输出错误。
执行如下代码段
string a = "hello\0";
string b = "hell\0o";
cout << a;
cout << b;
输出结果为:
hello
hell
执行如下代码段
char a[] = "hello\0";
char b[] = "hell\0o";
cout << a << "\n";
cout << b << "\n";
输出结果为:
hello
hell