指針數組和數組指針

int(*ptr)[] 是一個指針,指向數組,即爲數組指針
int*ptr[] 和int*(ptr[])是一個數組,裝着指針,即爲指針數組

總結:從左往右讀,加了()的最後讀。

int a[] = { 1, 2, 3, 4, 5 };
int *ptr = (int*)(&a + 1);
printf("a數組的第5個元素 *(ptr - 1): %d\n", *(ptr - 1));
printf("a數組的第二個元素 *(a+1): %d\n", *(a + 1));
printf("a數組的第6個元素地址 &a+1 : %d\n",&a+1);
printf("a數組的第二個元素的地址 &a[1]: %d\n", &a[1]);
printf("數組首地址  &a : %d\n", &a );
printf("數組首地址   a : %d\n", a);

//總結:數組名本身就是指針,再加上個&,就變成了雙指針,加1,就是數組整體加一行,ptr指向a的第六個元素 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章