C語言指針實例詳解double *(*a)[3][6]

double * (*a)[3][6];

求取sizeof(a),sizeof(*a),sizeof(**a),sizeof(***a),sizeof(***a);

a是一個指針,它指向誰呢,當然指向*a啦,那*a又是啥呢,代表3行6列數組的首地址,所以a是一個指向一個三行六列double指針的數組的指針的指針,*a是3行6列數組的首地址,
那緊接着就簡單了,
**a就是直線一維具有6個double*元素數組的首地址
***a是double*的指針
****a是double類型

故sizeof(a)=4
   sizeof(*a) = 3*6*4 = 72
   sizeof(**a) = 4*6 = 24
   sizeof(***a) = 4
   sizeof(****a)=8

具體分析還可以可以使用替代法
T1 = (double*);
B=(*a);
T1 B[3][6]; 這樣就一目瞭然了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章