我是C++的新手,最近在学习函数指针,对函数指针的用法有点困惑;
我练习了以下代码:
#include <iostream>
#include <sstream>
using namespace std;
int subtraction(int a,int b){
return a-b;
}
int main(int argc, const char * argv[])
{
int (*minus)(int,int)=subtraction;
cout<<minus(5,4);
return 0;
}
它运作良好;所以,我尝试了一些变化:
#include <iostream>
#include <sstream>
using namespace std;
int subtraction(int a,int b){
return a-b;
}
int main(int argc, const char * argv[])
{
int *minus(int,int)=subtraction;//only here different!
cout<<minus(5,4);
return 0;
}
我在 Mac 上的 Xcode 中练习它,它给了我错误:
非法初始化器(只能初始化变量)
但我认为编译器可以识别两者是相同的,为什么必须有一对括号?