像这样在C中声明数组时:int array[10];整数的初始值是多少?我在使用不同的编译器时会得到不同的结果,我想知道它是否与编译器或OS有关。
3 回答
慕仙森
TA贡献1827条经验 获得超7个赞
如果在函数中声明了数组,则该值是不确定的。int x[10];
函数的意思是:无需进行任何初始化即可获得10 int大小的内存区域的所有权。如果将数组声明为全局1或static
函数中的声明,则所有尚未初始化的元素都将初始化为零。
心有法竹
TA贡献1866条经验 获得超5个赞
按照标准设置,所有全局和函数静态变量都会自动初始化为0。自动变量不会初始化。
int a[10]; // global - all elements are initialised to 0
void foo(void) {
int b[10]; // automatic storage - contain junk
static int c[10]; // static - initialised to 0
}
但是,最好始终手动初始化函数变量,而不管其存储类如何。要将所有数组元素设置为0,您只需要将第一个数组项分配为0-省略的元素将自动设置为0:
int b[10] = {0};
- 3 回答
- 0 关注
- 1270 浏览
添加回答
举报
0/150
提交
取消