二維數組名、二維數組名取地址、二級指針


先給出結論,便於以后查閱:

首先給出幾個定義:

typedef int (*p1x4)[4];//定義數據類型,p1x4這種類型為指向含4個int元素的1維數組的指針

typedef int (*p3x4)[3][4];//定義數據類型,p3x4這種類型為指向含3x4個int元素的2維數組的指針

 

下面從一維數組說起:(定義:int a[4])

(1)一維數組名a是個地址,地址類型為:int *

(2)一維數組名取地址&a是個地址,地址類型同:int (*p)[4], 也即&a指向含4個int元素的一維數組

 

再看二維數組b[3][4],這個二維數組也可以可以看成一個含3個成員的一維數組,每一個成員含有4個int元素,依次,仿照一維數組的結論,有:

(1)b[0]是個一維數組名,也是個地址,地址類型為:int *

(2)&b[0]是個地址,地址類型同:int (*p)[4], 也即&b[0]指向含4個int元素的一維數組

更進一步:

(3)b是個地址,地址類型同:int (*p)[4],也即b指向含4個int元素的一維數組

(4)&b是個地址,地址類型同:int (*p)[3][4],也即&b指向含3x4個int元素的2維數組

注意:尤其注意上面的(3),這條結論指出了:二維數組名實際上是一維數組的地址!

 

總結:

① 數組名,是指向它的第一個一級成員的指針

② 數組名取地址,是指向整個數組的指針

PS:所謂一級成員,舉個例子,int a[5],那么數組a的一級成員就是int型變量;int b[10][5],數組b的一級成員是int [5]的一維數組
---------------------
作者:qq_610642
來源:CSDN
原文:https://blog.csdn.net/qq_31073871/article/details/80800858
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM