int (*a)[10] 和 int *a[10] 的区别
int *a[10] :數(shù)組指針。數(shù)組a里存放的是10個(gè)int型指針?
int (*a)[10] :a是指針,指向一個(gè)數(shù)組。此數(shù)組有10個(gè)int型元素 int *a[10] 先找到聲明符a,然后向右看,有[]說(shuō)明a是個(gè)數(shù)組,再向左看,是int *,說(shuō)明數(shù)組中的每個(gè)元素是int *。所以這是一個(gè)存放int指針的數(shù)組。
?int(*a)[10] 先找到聲明符a,被括號(hào)括著,先看括號(hào)內(nèi)的(優(yōu)先級(jí)高),然后向右看,沒(méi)有,向左看,是*,說(shuō)明a是個(gè)指針,什么指針?在看括號(hào)外面的,先向右看,有[] 是個(gè)數(shù)組,說(shuō)明a是個(gè)志向數(shù)組的指針,再向左看,是int,說(shuō)明數(shù)組的每個(gè)元素是int。所以,這是一個(gè)指向存放int的數(shù)組的指針。
?例 int *p[10];
?int (*q)[10];
?printf( "*p[10]: %d\n ", sizeof(p));?
printf( "(*q)[10]: %d\n ", sizeof(q));?
結(jié)果是: *p[10]: 40 //說(shuō)明p是一個(gè)數(shù)組名 (*q)[10]: 4 //說(shuō)明q是一個(gè)指針
總結(jié)
以上是生活随笔為你收集整理的int (*a)[10] 和 int *a[10] 的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 结构体作为参数的传递和返回
- 下一篇: int * * a[10] int *