c语言中(*p)[5]与*P[5]有什么区别?各代表什么意思 (*p)[5]中(*P)指中的内容还是p的地址啊

地址与内容我搞混了 分不清 要考C语言 靠大家了

int (*p)[5]; 是一个指针[注意 不是数组] 这个指针指向一个一维的大小为5个元素的数组
比如
int a[10][5];
这里你就可以 p=&a[4]; p=&a[1]; 这个时候 *p表示的是一个 a[1] 你想表示 a[1][2] 可以是 (*p)[2]
int *p[5] 是一个数组 数组中存储的元素是 一个指针 比如
int a,b,c;
p[1]=&a;//&是取地址的意思 &a就是取a的地址
p[4]=&c;....追问

a[1][2] 可以是 (*p)[2]
这个怎么理解啊 大哥?

追答

int (*p)[5];
int a[10][5];
p=&a[1]; // 现在(*p)就等于a[1] 所以 a[1][2]可以表示为(*p)[2]

你选择的那个满意回答 他回答的是错的 我在他的回答的评论里面写了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-29
(*p)[5] 和 a[5] 比较类似,p是地址,*p是内容,(*p)[5] 是指 p地址偏移5*size(elemtype) 所指位置的内容。 C的指针是精华,也是难点,慢慢理解吧。没事多敲敲代码,把各种指针类型都尝试几次,理解起来会容易点。本回答被提问者采纳
第2个回答  2012-03-29
a) 一个整型数(An integer)
b)一个指向整型数的指针( A pointer to an integer)
c)一个指向指针的的指针,它指向的指针是指向一个整型数( A pointer to a pointer to an intege)r
d)一个有10 个整型数的数组( An array of 10 integers)
e) 一个有10 个指针的数组,该指针是指向一个整型数的。(An array of 10 pointers to integers)
f) 一个指向有10 个整型数数组的指针( A pointer to an array of 10 integers)
g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes an integer as an argument
and returns an integer)
h)一个有10 个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数( An array of ten pointers to functions t
hat take an integer argument and return an integer )
答案是:
a) int a; // An integer
b) int *a; // A pointer to an integer
c) int **a; // A pointer to a pointer to an integer
d) int a[10]; // An array of 10 integers
e) int *a[10]; // An array of 10 pointers to integers
f) int (*a)[10]; // A pointer to an array of 10 integers
g) int (*a)(int); // A pointer to a function a that takes an integer argument and returns an integer
h) int (*a[10])(int); // An array of 10 pointers to functions that take an integer argument and return an integer本回答被网友采纳
相似回答