文章目录 指针函数函数指针
指针函数
指针函数本质是一个函数,返回值是某一类型指针
写法如下:
例子如下:
#include<iostream>using namespace std;char * D(char s[]){return s;}int main(){char s[]="abcvb";cout<<D(s)<<endl;return 0;}例2:
#include<iostream>using namespace std;int * D(int s[]){return &s[0];}int main(){int s[]={0,1,2,3};cout<<D(s)<<endl;return 0;} 函数指针函数指针是指向函数的指针,本质是指针变量
声明与赋值如下:
调用指针的方式有两种
a = (*fun)();a = fun();例子如下:
#include<iostream>using namespace std;int add(int a,int b){return a+b;}int subtract(int a, int b){return a-b;}int main(){int a,b;char c;int (*pf)(int,int);cout<<"请输入算式(如12+34):n";cin>>a>>c>>b;switch(c){case '+': pf=add;cout<<"和为:"<<(*pf)(a,b)<<endl;break;case '-': pf=subtract;cout<<"减为:"<<(*pf)(a,b)<<endl;break;default:cout<<"请重新输入"<<endl;}}函数指针数组如下:
#include<iostream>using namespace std;int add(int a,int b){return a+b;}int subtract(int a, int b){return a-b;}int multiply(int a, int b){return a*b;}int divide(int a, int b){return a/b;}int main(){int a,b;char c;int (*pf[4])(int,int);pf[0]=add;pf[1]=subtract;pf[2]=multiply;pf[3]=divide;cout<<"请输入算式(如12+34):n";cin>>a>>c>>b;switch(c){case '+': cout<<"和为:"<<(*pf[0])(a,b)<<endl;break;case '-': cout<<"减为:"<<(*pf[1])(a,b)<<endl;break;case '*': cout<<"积为:"<<(*pf[2])(a,b)<<endl;break;case '/': cout<<"除为:"<<(*pf[3])(a,b)<<endl;break;default:cout<<"请重新输入。"<<endl;}}