4 回答

TA貢獻(xiàn)3593條經(jīng)驗(yàn) 獲得超1個(gè)贊

TA貢獻(xiàn)32條經(jīng)驗(yàn) 獲得超39個(gè)贊
二維數(shù)組其實(shí)就是一個(gè)數(shù)組,只不過這個(gè)數(shù)組中的每一個(gè)元素都是一個(gè)數(shù)組罷了。而java中的元素?cái)?shù)組的長度可以不一樣,c中元素?cái)?shù)組的長度必須一樣,你暫時(shí)可以這樣理解。但是這其中包含了很深的面向?qū)ο蟮乃枷?,如果你想深入了解的話要熟悉面向?qū)ο螅@是這兩種語言本質(zhì)的不同之處。

TA貢獻(xiàn)32條經(jīng)驗(yàn) 獲得超39個(gè)贊
二維數(shù)組其實(shí)就是一個(gè)數(shù)組,只不過這個(gè)數(shù)組中的每一個(gè)元素都是一個(gè)數(shù)組罷了。而java中的元素?cái)?shù)組的長度可以不一樣,c中元素?cái)?shù)組的長度必須一樣,你暫時(shí)可以這樣理解。但是這其中包含了很深的面向?qū)ο蟮乃枷?,如果你想深入了解的話要熟悉面向?qū)ο螅@是這兩種語言本質(zhì)的不同之處。

TA貢獻(xiàn)883條經(jīng)驗(yàn) 獲得超454個(gè)贊
所以說它們表面上看起來很像,但實(shí)際是完全不同的概念。
如果硬要比較的話,java 中的數(shù)組變量更像是 C 中的指針——還不能說是指向數(shù)組的指針,只能類比為指向數(shù)組首元素的指針。
你說到的這兩個(gè)細(xì)節(jié)上的區(qū)別,其原因分別是:
在 java 中聲明數(shù)組變量時(shí),括號(hào)中是不能有數(shù)字的——它就像是指針嘛,根本不關(guān)心數(shù)組到底有多少個(gè)元素。
C 中的數(shù)組(不管是所謂幾維的),其元素在內(nèi)存中是連續(xù)排列的,加之聲明數(shù)組時(shí)提供的數(shù)組元素大小的信息,編譯器能夠推斷出元素的個(gè)數(shù)或大小。所以你才可以直接寫一個(gè)大的初值列表,編譯器可以根據(jù)它推斷出的信息來自動(dòng)確定分組。
那么既然 java 中數(shù)組變量本身沒有提供數(shù)組大小的信息,所以你必須自己把初值列表分好組。
當(dāng)然,這個(gè)具體的解釋你若現(xiàn)在看不懂也沒關(guān)系。初學(xué)時(shí)你記住語法上的區(qū)別就好了。我只是想告訴你,你在這個(gè)問題上開的腦洞并不是沒有意義,之所以有這樣的區(qū)別確實(shí)是有深層次的原因的。
添加回答
舉報(bào)