gpt4 book ai didi

c - 如果字符串数组在 C 中以 null 结尾,为什么其他数据类型的数组不以 null 结尾?

转载 作者:行者123 更新时间:2023-12-04 01:43:03 27 4
gpt4 key购买 nike

C 中的字符串或字符数组必须以空字符结尾才能知道它们在哪里结束。为什么相同的规则不适用于其他类型的数组?
例如。计算机如何知道整数数组在哪里结束?整数/浮点数/ double 数组在内存中的表示方式有区别吗?

最佳答案

字符数组不必以空字符结尾。

char foo[3]="foo"; //not nul-terminated
char bar[]={'b','a','r'}; //not nul-terminated

只是字符串文字是以空字符结尾的数组,而 C 通过使用字符串文字作为初始值设定项,可以很容易地制作以空字符结尾的数组:
 char baz[]="baz"; //nul-terminated because "baz" is

为什么 C 这样做是设计师的选择,因为 using a terminator seemed more convenient to them than maintaining character counts接下来是字符数组。

但是 C 中没有任何东西会强制你有这种偏好。

关于c - 如果字符串数组在 C 中以 null 结尾,为什么其他数据类型的数组不以 null 结尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56588439/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com