为了账号安全,请及时绑定邮箱和手机立即绑定

C中int数组的初始值

C中int数组的初始值

C
杨__羊羊 2019-10-30 10:43:54
像这样在C中声明数组时:int array[10];整数的初始值是多少?我在使用不同的编译器时会得到不同的结果,我想知道它是否与编译器或OS有关。
查看完整描述

3 回答

?
慕仙森

TA贡献1827条经验 获得超7个赞

如果在函数中声明了数组,则该值是不确定的。int x[10];函数的意思是:无需进行任何初始化即可获得10 int大小的内存区域的所有权。如果将数组声明为全局1或static函数中的声明,则所有尚未初始化的元素都将初始化为零。


查看完整回答
反对 回复 2019-10-30
?
心有法竹

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};


查看完整回答
反对 回复 2019-10-30
  • 3 回答
  • 0 关注
  • 1270 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信