像這樣在C中聲明數組時:int array[10];整數的初始值是多少?我在使用不同的編譯器時會得到不同的結果,我想知道它是否與編譯器或OS有關。
3 回答

慕仙森
TA貢獻1827條經驗 獲得超8個贊
如果在函數中聲明了數組,則該值是不確定的。int x[10];
函數的意思是:無需進行任何初始化即可獲得10 int大小的內存區(qū)域的所有權。如果將數組聲明為全局1或static
函數中的聲明,則所有尚未初始化的元素都將初始化為零。

心有法竹
TA貢獻1866條經驗 獲得超5個贊
按照標準設置,所有全局和函數靜態(tài)變量都會自動初始化為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 關注
- 1335 瀏覽
添加回答
舉報
0/150
提交
取消