在vckbase上别人问的一道题。
下面的声明令人非常的困惑,哪位能详细的解释一下,并给出类比的例子,使得理解更加容易
int(*func())();
int(*func())[];
int(*foo[])();
我的解释是:
1,func函数返回一个指向int返回类型,无参数函数的指针
2,func函数返回一个数组指针
3,定义了一个函数指针类型的数组
他让我详细说一下,我就想把各个定义才开了说。有的描述我觉得对,有的描述,感觉比较牵强,记录下来,大家看看,如果有不对的希望指正。
1,实际上可以这么看//比较满意
int (*p)();
p = func;
2,可以这么看//有点牵强:)
int[] (*p)();//不知道是否符合语法,个人感觉不符合,但可以帮助理解
p = func;
3,可以这么看//也有点牵强
我无法用代码描述。。。
int (*p)();
p实际上是一个数组中的一项,这个数组中存放的都是这类函数(int (*)();)的函数指针。
对于我以上的看法,如果有什么不同意见,可以留言给我,大家讨论讨论~