本文共 1152 字,大约阅读时间需要 3 分钟。
gcc版本 8.2.0 Linux centos 7
发现——字符串末尾的\0是真实存在的
1 #include2 using namespace std; 3 4 int main(){ 5 char str[]="hello"; 7 for(auto i :str){ 8 cout< <
字符串最后的\0也被输出了。
故意写的超过一个字符,最后报错——段错误
1 #include2 using namespace std; 3 4 int main(){ 5 char str[]="hello"; 6 scanf("%s", str[0]); 7 printf("%s \n",str); 8 return 0; 9 }
故意写的很长,有的版本会把str3里面的值也都改成aaaaaaa了,我这个版本报错——段错误(不同版本还是有差异的)
1 #include2 using namespace std; 3 4 int main(){ 5 char str[]="hello"; 6 char str3[]="abcdeftg"; 7 cout<<"str3="< <
如果str3没有被赋初值
1 #include2 using namespace std; 3 4 int main(){ 5 char str[]="hello"; 6 char str3[10]; 7 scanf("%s", str); 8 printf("str=%s \n",str); 9 cout<<"str3="<
这次我只传入了一个a,然后打印连续地址上的值,发现hello中的“he”被覆盖了,后面的“llo”还活着!
1 #include2 using namespace std; 3 4 int main(){ 5 char str[]="hello"; 6 char str3[10]; 7 scanf("%s", str); 8 printf("str=%s \n",str); 9 cout<<"str3="<
转载地址:http://zleoa.baihongyu.com/