二維數組與指向數組的指針


先上代碼

#include<stdio.h>

int main()
{
int a[2][10] = { {1,2,3,4,5,6,7,8,9,10},{11,12,13,14,15,16,17,18,19,20} };
int(*p)[10] = a;
printf("%d\n", **p);
printf("%d\n", **(p + 1));
printf("%d\n", *(*p + 1));
printf("%d\n", *(p[0] + 1));
printf("%d\n", *(p[1]));
return 0;
}

運行結果 1 11 2 2 11
int(*p)[10] = a;
定義了一個數組指針,可以這樣理解:int *p 定義了 int 型指針,則 int(*p)[10] 定義了數組指針,該指針指向一個數組,數組大小為10.同時,p++與a+1都表示以sizeof(數組)大小步進,也就是說p++表示地址增加40個字節
而*p表示指向第一維的第一個數,則*p+1表示步進為4字節指向啊a[0][1]
以此類推


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: