吃鲸,指针函数

同学在浙大复习C大程,她问了这样一条题目:

If a function is decleared as int(*func(int))(double)
The return type of this function is :

An int
A pointer to an int
A pointer to a function that returns an int
A pointer to a double

这个题目看上去非常的奇怪,使用的指针函数一度让活动室的很多人都懵了,然而最后在某个学长的帮助下我还是看懂了这个奇怪的写法。和int* a类似,这里其实是在定义指针函数func,也就是int* func (这里有些问题,稍后补充)。我后来编写了一个简单的实例,如下:

#include<iostream>

using namespace std;

int real_func(double b) {
	return (int)b;
}

int(*func(int))(double a) {
	return real_func;
}

int main()
{
	int a = func(1)(9.6);
	cout << a << endl;
    return 0;
}

这样一来看上去就容易多了。
查阅资料后,我发现这里的括号使用也是有讲究的,在稍后我会做一些补充。

留下你的评论呗...

电子邮件地址不会被公开。 必填项已用*标注