C中int数组的初始值

像这样在C中声明数组时:


int array[10];

整数的初始值是多少?我在使用不同的编译器时会得到不同的结果,我想知道它是否与编译器或OS有关。


杨__羊羊
浏览 1271回答 3
3回答

慕仙森

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

心有法竹

按照标准设置,所有全局和函数静态变量都会自动初始化为0。自动变量不会初始化。int a[10];  // global - all elements are initialised to 0void foo(void) {    int b[10];    // automatic storage - contain junk    static int c[10]; // static - initialised to 0}但是,最好始终手动初始化函数变量,而不管其存储类如何。要将所有数组元素设置为0,您只需要将第一个数组项分配为0-省略的元素将自动设置为0:int b[10] = {0};
打开App,查看更多内容
随时随地看视频慕课网APP