廢話少說直接上題:
eg: ? ?int arry[3][5]={0};
問:arry的數(shù)據(jù)類型是啥?
答:判斷數(shù)據(jù)類型最牛(jian)掰(dan)的方法就是把變量名遮住啦;所以arry的本質(zhì)數(shù)據(jù)類型是int [3][5];但是arry也可以代表為類型int (*)[5],是一個二級指針,且第二個維度是5;
問:int (*ptr) [3][5] ?= & arry;
答:成立; ptr的數(shù)據(jù)類型是int [3][5]類型的指針;ptr解引用得到arry
問:int (*p)[5] = arry;
答:成立;arry 的數(shù)據(jù)類型可以是一個二級指針,其中第二個維度是5,即int [5]類型的指針;
問:int ?*pp =*arry;
答:成立;arry是一個二級指針,解引用得到一個一級指針即一維指針;
幾維數(shù)組名代表的就是幾維指針;
數(shù)組名本質(zhì):(參考:http://tech.163.com/05/0823/11/1RR94CAS00091589.html)
(1)數(shù)組名的內(nèi)涵在于其指代實體是一種數(shù)據(jù)結(jié)構(gòu),這種數(shù)據(jù)結(jié)構(gòu)就是數(shù)組;
(2)數(shù)組名的外延在于其可以轉(zhuǎn)換為指向其指代實體的指針,而且是一個指針常量;
(3)指向數(shù)組的指針則是另外一種變量類型(在WIN32平臺下,長度為4),僅僅意味著數(shù)組的存放地址!
對(3)的理解:數(shù)據(jù)名作為函數(shù)形參時,其全面淪落為一個普通指針!它的貴族身份被剝奪,成了一個地地道道的只擁有4個字節(jié)的平民。