【发布时间】:2013-06-08 02:30:52
【问题描述】:
我知道我们必须使用空字符来终止这样的字符串数组:
char str[5] = { 'A','N','S','\0' };
但我只是想知道为什么必须使用空字符来终止这样的数组?
为什么我们不添加一个空字符来终止这些:-
char str1[5]="ANS";
【问题讨论】:
-
因为 null 占用一个字节,而将字符串的长度与字符串本身一起存储可能占用多个字节。过去内存稀缺,因此较小的解决方案胜出。
-
现在这就是我要找的。span>
-
这里有一篇 Wikipedia 文章,介绍了历史背景:en.wikipedia.org/wiki/Null-terminated_string
-
我认为您的意思是
char str[5] = {'A','N','S','\0'};和char str1[5] = "ANS";(即使是明确的长度) -
我编辑了您的问题,因为您的代码示例错误。
标签: c arrays string character-arrays