帮忙解一道关于指针的题
1 请问下面的语句声明了一个什么变量呢?CODE:
int (*(*a)(int (*)[10][20],int))[10];
----------------解决方案--------------------------------------------------------
函数指针数组
[color=white]
----------------解决方案--------------------------------------------------------
能说的具体一点吗?
----------------解决方案--------------------------------------------------------
一层一层分析
int (*(*a)(int (*)[10][20],int))[10];
里面是2个参数,前面int(*)[10][20]是一个2维整形指针数组,(a)定义a指向这个函数,前面又定义指向a的指针数组大小为10;
请大家批评指正。
----------------解决方案--------------------------------------------------------
我是这样理解的:
a是个指向数组的指针
a的目标是个数组(整体)
该数组有10个元素,每个元素是一个函数指针
函数指针指向的函数应该是int类型,有两个形参,其中第一个形参是个指向整型二维数组的指针
也就是说a是一个指向函数指针数组的指针
请指正
[[it] 本帖最后由 forever74 于 2008-5-30 13:50 编辑 [/it]]
----------------解决方案--------------------------------------------------------
高手进来讨论啊,顺便再问,int (*)[10][20],和 (int *)[10][20],有区别吗?
----------------解决方案--------------------------------------------------------
没有区别…吧
----------------解决方案--------------------------------------------------------
我觉得5楼的朋友解释是正确的。
----------------解决方案--------------------------------------------------------
这是个函数指针数组。。
(*a)(int (*)[10][20],int) 这表明a是指针。。
----------------解决方案--------------------------------------------------------
貌似不能写(int *)[10][20]吧?
----------------解决方案--------------------------------------------------------