4 回答

TA貢獻(xiàn)143條經(jīng)驗(yàn) 獲得超187個(gè)贊
?? 將二維數(shù)組當(dāng)作參數(shù)的時(shí)候,必須指明所有維數(shù)大小或者省略第一維的,但是不能省略第二維或者更高維的大小,這是由編譯器原理限制的。事實(shí)上,編譯器是這樣處理數(shù)組的:
? ? ? 設(shè)有數(shù)組int a[m][n],如果要訪問a[i][j]的值,編譯器的尋址方式為:
? ? ?&a[i][j]=&a[0][0]+i*sizeof(int)*n+j*sizeof(int); //注意n為第二維的維數(shù),
因此,可以省略第一維的維數(shù),不能省略其他維的維數(shù)。
? ? 在定義二維數(shù)組的時(shí)候?qū)ζ溥M(jìn)行初始化,也可以省略第一維,編譯器會(huì)根據(jù)你的初始化語句自動(dòng)決定第一維度。

TA貢獻(xiàn)2條經(jīng)驗(yàn) 獲得超2個(gè)贊
二維數(shù)組存儲(chǔ)的時(shí)候是"先行后列",, 如果不指定列數(shù), 它就不能知道一行放幾個(gè)數(shù)據(jù)了。
在初始化的時(shí)候,第二維的數(shù)字代表分配內(nèi)存的長度,第一維的數(shù)字代表分配內(nèi)存倍數(shù);
倍數(shù)可以讓機(jī)器去數(shù),但長度沒有的話就不好開辟空間了。

TA貢獻(xiàn)5條經(jīng)驗(yàn) 獲得超0個(gè)贊
那就先把他放下,別太糾結(jié),等把尋址等相關(guān)知識(shí)掌握了,再返過頭來看,就會(huì)明白了,實(shí)際上我也沒看懂,^_^等我學(xué)到后面知識(shí)后一定會(huì)來看!
- 4 回答
- 2 關(guān)注
- 8347 瀏覽
添加回答
舉報(bào)