gpt4 book ai didi

arrays - 为什么每个值都没有初始化为 0?

转载 作者:行者123 更新时间:2023-12-03 15:26:59 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





int array element not initialized to zero in C

(1 个回答)


6 个月前关闭。



#include <stdio.h>

int main(void) {
int memo[1000];
for (int i = 0; i < 1000; i++) {
printf("%d\t", memo[i]);
}
return 0;
}
我认为一切都应该初始化为 0 但事实并非如此。
这有什么原因吗?
非常感谢你的帮助。

最佳答案

本地定义并自动存储在函数体中的对象是 未初始化 在 C 中。这些值可以是任何东西,包括某些体系结构上的陷阱值,这些值仅通过读取它们就会导致未定义的行为。
您可以将此数组初始化为 int memo[1000] = { 0 }; .第一个元素显式初始化为 0 , 其余的也将初始化为 0因为任何缺少初始化器的元素都将被设置为 0 .
为完整起见,int memo[1000] = { 42 };将其第一个元素设置为 42和所有剩余的到 0 .同样,C99 初始化程序 int memo[1000] = { [42] = 1 };将其第 43 个元素设置为 1和所有其他设置为 0 .

关于arrays - 为什么每个值都没有初始化为 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67256377/

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