读书人

int(*a)[十](int) 与int(a[10])(int)分

发布时间: 2013-07-09 09:50:48 作者: rapoo

int(*a)[10](int) 与int(a[10])(int)分别是什么意思???
!!!!!!!!!!!!!!!!!! 有吗
[解决办法]
int a(int) 是定义一个函数
int (a)(int) 也是定义一个函数.
int (a[10])(int) 定义 10 个函数!
int ((a)[10])(int) 还是定义 10 个函数!
由于 [] 的优先级高于 (), 所以上面这个等价于:
int (a)[10](int)
继续等价于
int a[10](int)
都是定义的 10 个函数.

既然知道了 int a[10](int) 是定义的 10 个函数, 那么
int(*a)[10](int) 就是一个指向 10 个函数的指针.

当然, 在 C 里面是没法同时定义 10 个函数的. 所以它们都是非法的!

读书人网 >C++

热点推荐