4 回答

asd8532
TA貢獻143條經驗 獲得超187個贊
?? 將二維數組當作參數的時候,必須指明所有維數大小或者省略第一維的,但是不能省略第二維或者更高維的大小,這是由編譯器原理限制的。事實上,編譯器是這樣處理數組的:
? ? ? 設有數組int a[m][n],如果要訪問a[i][j]的值,編譯器的尋址方式為:
? ? ?&a[i][j]=&a[0][0]+i*sizeof(int)*n+j*sizeof(int); //注意n為第二維的維數,
因此,可以省略第一維的維數,不能省略其他維的維數。
? ? 在定義二維數組的時候對其進行初始化,也可以省略第一維,編譯器會根據你的初始化語句自動決定第一維度。
點擊展開后面1條

玄幻癡迷
TA貢獻2條經驗 獲得超2個贊
二維數組存儲的時候是"先行后列",, 如果不指定列數, 它就不能知道一行放幾個數據了。
在初始化的時候,第二維的數字代表分配內存的長度,第一維的數字代表分配內存倍數;
倍數可以讓機器去數,但長度沒有的話就不好開辟空間了。
- 4 回答
- 2 關注
- 8353 瀏覽
添加回答
舉報
0/150
提交
取消