字符数组初始化:最后添加NUL

时间:2016-06-11 16:23:56

标签: c arrays character

示例:

char s[]={'I',' ','a','m',' ','a',' ','g','o','o','d',' ','g','u','y','\O'};

char s[]={'I',' ','a','m',' ','a',' ','g','o','o','d',' ','g','u','y',};

是否总是需要在最后使用NUL初始化字符数组?如果没有添加NUL,第二个例子会起作用吗?而且,为什么我们必须在最后添加Nul?

1 个答案:

答案 0 :(得分:4)

  

是否总是需要在末尾用NULL初始化字符数组

并非总是如此。当您希望字符数组的行为类似于字符串时,这是必要的。

所以,如果您只想像普通数组一样读取和写入该数组,NUL(顺便说一句,它是NUL不是 {{1最后不需要}}。但是,如果您想使用NULL或类似的字符串函数,则需要strlen()

  

如果没有添加NULL,第二个示例是否会起作用

第二个例子将完全正常,直到你像对待任何普通数组一样对待它,而不是像字符串一样。这意味着,如果你不使用NUL之类的字符串函数或类似函数,它应该可以正常工作。

相关问题