示例:
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?
答案 0 :(得分:4)
是否总是需要在末尾用NULL初始化字符数组
并非总是如此。当您希望字符数组的行为类似于字符串时,这是必要的。
所以,如果您只想像普通数组一样读取和写入该数组,NUL
(顺便说一句,它是NUL
,不是 {{1最后不需要}}。但是,如果您想使用NULL
或类似的字符串函数,则需要strlen()
。
如果没有添加NULL,第二个示例是否会起作用
第二个例子将完全正常,直到你像对待任何普通数组一样对待它,而不是像字符串一样。这意味着,如果你不使用NUL
之类的字符串函数或类似函数,它应该可以正常工作。