使指针的中间为NULL;它有用吗?

时间:2012-10-24 05:36:01

标签: c++ pointers

  

可能重复:
  What happens to memory after ‘\0’ in a C string?

是否有可能制作一个指针,比如第三个元素NUL(' \ 0'),之后"擦除"指针剩下的元素?

1 个答案:

答案 0 :(得分:3)

假设你在谈论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")