2017-03-18 81 views
1

声明:了解c函数指针

“数组n函数指针,返回函数指针,返回指向整数”

谁能帮助我理解函数原型对于上述说法?

鉴于答案 - int *(*(*a[N])())();

请谁能给我解释一下我们是如何在上面得出答案?

+4

我已经编码了25年而不知道这一点? –

+0

你不会需要这个。即使你认为你做了,也没有人会理解你的代码。 :-)在C++中,这可能会通过使用虚函数和继承来解决(并因此隐藏所有指针) –

+0

@BoPersson如果只有我的教授会理解现实世界软件是如何工作的:/ –

回答

1
*a[N] 

是N的指针数组,称之为X

*(x)() 

返回函数指针,调用它ÿ

int *(y)() 

是函数指针返回整数

1
int *(*(*a[500])())(); 

转换为:

声明作为数组指针的500至函数返回指针 函数返回指针为int


注:下一次,使用本网站来了解复杂的指针声明http://cdecl.org/