gpt4 book ai didi

c - 所有 char 数组都自动以 null 结尾吗?

转载 作者:太空狗 更新时间:2023-10-29 16:51:09 26 4
gpt4 key购买 nike

可能我只是太笨了,不适合谷歌搜索,但我一直认为 char 数组只会通过文字初始化 (char x[]="asdf";) 得到 null 并感到有点惊讶当我看到这似乎不是这样的时候。

int main()
{
char x[2];
printf("%d", x[2]);
return 0;
}

输出:0

声明为 size=2*char 的数组实际上不应该获得 2 个字符的大小吗?或者我在这里做错了什么?我的意思是将 char 数组用作简单的 char 数组而不是字符串并不少见,对吗?

最佳答案

您正在访问超出其范围的未初始化数组。这是双重未定义的行为,任何事情都可能发生,甚至得到 0 作为输出。

在回答你真正的问题时:只有字符串字面量得到 null-terminated,这意味着 char x[]="asdf" 是一个 数组>5 元素。

关于c - 所有 char 数组都自动以 null 结尾吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11229477/

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