关于C++函数指针数组有关问题
关于C++函数指针数组问题
#include<iostream>
using namespace std;
int fun1(int a,int b)
{
return a+b;
}
int fun2(int a,int b)
{
return a*b;
}
int (*fp[2])(int x,int y);
fp[0]=fun1;
fp[1]=fun2;
int main()
{
cout<<fp[0](1,2)<<endl;
cout<<fp[1](1,3)<<endl;
return 0;
}
这为什么错了
把fp[0]=fun1;
fp[1]=fun2;这两句放在主函数里就可以了,不解
------解决思路----------------------
int (*fp[2])(int x,int y);
fp[0]=fun1;
fp[1]=fun2;
函数区域外不可以执行赋值语句,第一行是定义语句,而二、三行数据赋值语句,只能放在函数内,因此在main中是允许的。
#include<iostream>
using namespace std;
int fun1(int a,int b)
{
return a+b;
}
int fun2(int a,int b)
{
return a*b;
}
int (*fp[2])(int x,int y);
fp[0]=fun1;
fp[1]=fun2;
int main()
{
cout<<fp[0](1,2)<<endl;
cout<<fp[1](1,3)<<endl;
return 0;
}
这为什么错了
把fp[0]=fun1;
fp[1]=fun2;这两句放在主函数里就可以了,不解
------解决思路----------------------
int (*fp[2])(int x,int y);
fp[0]=fun1;
fp[1]=fun2;
函数区域外不可以执行赋值语句,第一行是定义语句,而二、三行数据赋值语句,只能放在函数内,因此在main中是允许的。