Kan*_*ang 5 c arrays initialization storage-duration
#include <stdio.h>
int main(void) {
int memo[1000];
for (int i = 0; i < 1000; i++) {
printf("%d\t", memo[i]);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我认为一切都应该初始化为 0 但事实并非如此。这有什么原因吗?非常感谢你的帮助。
本地定义并自动存储在函数体中的对象在 C中未初始化。这些值可以是任何东西,包括某些体系结构上的陷阱值,这些值仅通过读取它们就会导致未定义的行为。
您可以将此数组初始化为int memo[1000] = { 0 };. 第一个元素被显式初始化为0,其余0所有元素也将被初始化为 ,因为任何缺少初始化器的元素都将被设置为0。
为完整起见,int memo[1000] = { 42 };将其第一个元素设置为42,其余所有元素设置为0。类似地,C99 初始值设定项int memo[1000] = { [42] = 1 };将其第 43 个元素设置为1并且所有其他元素都设置为0。
| 归档时间: |
|
| 查看次数: |
109 次 |
| 最近记录: |