Possible Duplicate:
What happens to memory after ‘\0’ in a C string?
是否可以制作一个指针,例如第三个元素NUL('\ 0'),然后“擦除”指针剩余的元素?
最佳答案
假设您正在谈论C风格的字符串,那么可以,是这样的:
char s[] = "abcdefgh"; // s = "abcdefgh"
// (actually contains 9 characters: "abcdefgh\0")
s[3] = '\0'; // s = "abc"
// (still contains 9 characters, but now: "abc\0efgh\0")
请注意,
s[3]
以外的字符目前还没有神奇地消失-只是显示字符串,或将其传递给采用C样式字符串的任何函数,结果该字符串似乎只包含三个字符。您仍然可以例如s[3] = 'x'; // s = "abcxefgh"
// (still contains 9 characters, but now: "abcxefgh\0")