+ -
当前位置:首页 → 问答吧 → 一个C的问题

一个C的问题

时间:2011-11-09

来源:互联网

大家好,
我有一个C语言的问题想请教大家:
我想知道 int *(a[5]) 和 int (*a[5]) 这两个声明有区别吗?如果有,他们的区别是什么?
我还有一个扩展问题:
int *(*a[5])(int) 这个表示什么?
先谢谢大家了

p.s. 这三个声明都可以通过编译

作者: maximdx   发布时间: 2011-11-09

int *(a[5]):a是一个指向含有5个整数的数组的变量,相当于一个指针变量。
如int b[5]; a = b;
int (*a[5]):a是指针数组,数组中没每一项都指向整形指针。
如int b, c; a[0] = &b; a[1] = &c;

最后一个我就不懂了。功力不够啊!

作者: zl_Alen   发布时间: 2011-11-09