当前位置: 技术问答>linux和unix
一个C的问题
来源: 互联网 发布时间:2017-01-15
本文导语: 本帖最后由 maximdx 于 2011-11-09 18:05:01 编辑 大家好, 我有一个C语言的问题想请教大家: 我想知道 int *(a[5]) 和 int (*a[5]) 这两个声明有区别吗?如果有,他们的区别是什么? 我还有一个扩展问题: int *(*a[5])(int) ...
我有一个C语言的问题想请教大家:
我想知道 int *(a[5]) 和 int (*a[5]) 这两个声明有区别吗?如果有,他们的区别是什么?
我还有一个扩展问题:
int *(*a[5])(int) 这个表示什么?
先谢谢大家了
p.s. 这三个声明都可以通过编译
|
int *(a[5]):a是一个指向含有5个整数的数组的变量,相当于一个指针变量。
如int b[5]; a = b;
int (*a[5]):a是指针数组,数组中没每一项都指向整形指针。
如int b, c; a[0] = &b; a[1] = &c;
最后一个我就不懂了。功力不够啊!
如int b[5]; a = b;
int (*a[5]):a是指针数组,数组中没每一项都指向整形指针。
如int b, c; a[0] = &b; a[1] = &c;
最后一个我就不懂了。功力不够啊!
|
int *(a[5]) 的括号没用,等于int* a[5]; 存储5个int*的数组。
int (*a[5]) 的括号没用,和上边一样。
int *(*a[5])(int) 一个函数指针,我也看不懂,不建议你这样分析,最好提前做好typedef别名。
我估计里边涉及的内容有:函数指针,指针数组int* a[5],数组指针int (*)[5]。
int (*a[5]) 的括号没用,和上边一样。
int *(*a[5])(int) 一个函数指针,我也看不懂,不建议你这样分析,最好提前做好typedef别名。
我估计里边涉及的内容有:函数指针,指针数组int* a[5],数组指针int (*)[5]。
|
int *(*a[5])(int)
a是个长度为5的数组,数组的每个元素是个指针,,这个指针是个函数指针
而这个函数的形参为int,返回值为int *
a是个长度为5的数组,数组的每个元素是个指针,,这个指针是个函数指针
而这个函数的形参为int,返回值为int *
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。