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")

08-26 09:01