现在让我们看看这个小程序
char s[20]="One";
strcat(s,"Two");
cout<<s<<endl;
这里起初 s 的值为“One”,对于视觉表示,这是 s 的值:
O - n - e -\0
然后我将“Two”添加到生成此字符串的末尾:
O - n - e - T - w - o -\0
现在您可以看到字符串中唯一的空值最初是在“One”之后,现在是在“OneTwo”之后
我的问题是: null 是否被字符串“Two”覆盖,然后在末尾添加它自己的 null。
或者是已经在开头的 null 又移回了末尾?
(这个问题可能看起来没什么区别,但我想知道我学到的一切)
谢谢
最佳答案
第一个 \0
被覆盖,并在连接字符串的末尾添加一个新的 \0
。这里没有“移动”任何东西的范围。这些是值被分配到的位置。
关于C++:strcat() 是否覆盖或移动 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11834655/