二維數(shù)組名的本質(zhì)是 二維數(shù)組名與二級指針有什么區(qū)別?
二維數(shù)組名與二級指針有什么區(qū)別?C語言中的二維數(shù)組名是一個二重指針嗎?1。二維數(shù)組名不是輔助指針,它只是一個特殊的常量指針。三維、四維甚至n維數(shù)組也是如此。只要它是一個數(shù)組,它就是一個普通的常量指針。
二維數(shù)組名與二級指針有什么區(qū)別?
C語言中的二維數(shù)組名是一個二重指針嗎?
1。二維數(shù)組名不是輔助指針,它只是一個特殊的常量指針。三維、四維甚至n維數(shù)組也是如此。只要它是一個數(shù)組,它就是一個普通的常量指針。2輔助指針P也可以解釋為指針的指針,即存儲在P中的值實際上是一個指針。計算:*P值實際上是一個指針值,那么*(*P)是第二個指針的最終值。對于二維數(shù)組a[2][2],a也是一個地址,這個值也等于a[0],它也等于a[0[0]的地址,即&A[0][0]。從這個角度來看,a的地址值是一個變量值(不是指針),因此a不是輔助指針,最多是主指針。
二維數(shù)組名為什么不能直接賦值給二級指針?
如果您的問題是:為什么int a[3][4]int**P=a報告錯誤,我理解?答:你所理解的是對的,但錯誤的是a指向一維數(shù)組,P指向int*,這是不等價的。A指向一維int數(shù)組,內(nèi)存大小為sizeof(int)*數(shù)組長度;P僅指向int*類型指針,內(nèi)存大小為4。指針的類型實際上是不同的。你可能有疑問。為什么能把int b[10]的一維數(shù)組賦給int*Pb=b?這是因為數(shù)組退化為指針。只有第一維數(shù)組可以用作第一個地址,而不需要確定數(shù)組的長度。關(guān)于數(shù)組名是否可以用作正確的值有一個討論。如果要實現(xiàn)指針賦值,可以這樣定義int(*P)[4]=a??梢岳斫釶是指向int[4]一維數(shù)組的指針