函数指针

可以通过auto关键字将一个变量直接变为函数指针

auto具有自动类型推断功能

 1 #include<iostream>
 2 #include<string>
 3 using namespace std;
 4 
 5 void fun1(int a){
 6     
 7     cout<<"fun1:"<<a<<endl;
 8 }
 9 
10 int main(){
11 
12     auto fun=fun1;
13     (*fun)(3);
14     system("pause");
15     return 0;
16 } 

上述代码中fun会被直接认为是一个函数指针

 

 

我们还可以将函数指针定义为函数指针数组

 1 #include<iostream>
 2 #include<string>
 3 using namespace std;
 4 
 5 
 6 
 7 void fun1(int a){
 8     
 9     cout<<"fun1:"<<a<<endl;
10 }
11 void fun2(int a){
12     
13     cout<<"fun2:"<<a<<endl;
14 }
15 void fun3(int a){
16     
17     cout<<"fun3:"<<a<<endl;
18 }
19 
20 int main(){
21 
22     
23     void (*fun[3])(int)={fun1,fun2,fun3};
24     (*(fun[0]))(10);
25     (*(fun[1]))(20);
26     (*(fun[2]))(30);
27     system("pause");
28     return 0;
29 } 

和定义函数指针唯一不同的地方就是多加了一个[]

 

数组名是指向第一个元素的指针,

 

posted @ 2016-11-22 23:49  柳下_MBX  阅读(263)  评论(0编辑  收藏  举报