3 回答

TA貢獻883條經(jīng)驗 獲得超454個贊
你這兩個代碼沒有區(qū)別。都是把所有元素初始化為 0。
對于數(shù)值類型數(shù)組,數(shù)組大小比初始化列表中提供的初值個數(shù)多的,多出的沒有指定初值的元素會被初始化為 0。
第一個 score 數(shù)組:初始化列表只提供了 3 個元素的初值,且這 3 個元素也只提供了 1 個值,但其他元素會被初始化為 0,所以最后 score 中全部都是 0。
第二個 score 數(shù)組:這次初始化列表提供了 6 個元素的初值,其他和上面沒有區(qū)別,最終 score 中仍然全都是 0。

TA貢獻8條經(jīng)驗 獲得超2個贊
怎么說,應(yīng)該是有區(qū)別的,但是最終還是沒有區(qū)別,區(qū)別的地方就是有些未被自己初始化,但是沒區(qū)別的就是結(jié)果一樣,因為編譯運行后結(jié)果都一樣。有時候過程可以不必斤斤計較,結(jié)果是一樣的,如果只是想要初始化為0,那么就這樣吧?int score[6][3] = {0};

TA貢獻8條經(jīng)驗 獲得超2個贊
被允許這樣書寫的是初始化過程的賦值;
score[m][n]是二維數(shù)組,外層括號定義一個行,內(nèi)層定義m個列,每個列有n個元素
數(shù)組初始化順序進行,沒涉及的元素相當于是缺省值(未經(jīng)初始化時的值);
{{0},{0},{0}} <=> {{0, ?, ?},{0, ?, ?},{0, ?, ?},{?, ?, ?},{?, ?, ?},{?, ?, ?}}
{{0},{0},{0},{0},{0},{0}}?<==> {{0, ?, ?},{0, ?, ?},{0, ?, ?},{0, ?, ?},{0, ?, ?},{0, ?, ?}}
- 3 回答
- 0 關(guān)注
- 1353 瀏覽
添加回答
舉報