int (*a)[10] 和 int *a[10] 的区别
生活随笔
收集整理的這篇文章主要介紹了
int (*a)[10] 和 int *a[10] 的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
int *a[10] :數組指針。數組a里存放的是10個int型指針?
int (*a)[10] :a是指針,指向一個數組。此數組有10個int型元素 int *a[10] 先找到聲明符a,然后向右看,有[]說明a是個數組,再向左看,是int *,說明數組中的每個元素是int *。所以這是一個存放int指針的數組。
?int(*a)[10] 先找到聲明符a,被括號括著,先看括號內的(優先級高),然后向右看,沒有,向左看,是*,說明a是個指針,什么指針?在看括號外面的,先向右看,有[] 是個數組,說明a是個志向數組的指針,再向左看,是int,說明數組的每個元素是int。所以,這是一個指向存放int的數組的指針。
?例 int *p[10];
?int (*q)[10];
?printf( "*p[10]: %d\n ", sizeof(p));?
printf( "(*q)[10]: %d\n ", sizeof(q));?
結果是: *p[10]: 40 //說明p是一個數組名 (*q)[10]: 4 //說明q是一個指針
總結
以上是生活随笔為你收集整理的int (*a)[10] 和 int *a[10] 的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 结构体作为参数的传递和返回
- 下一篇: int * * a[10] int *