c / c++中的函数指针
一个案例说明
#include <iostream>
using namespace std;
/**定义函数指针*/
//typedef 声明为一个指针函数类型 MethodPointer
//int为指针指向函数的返回值类型
//(*MethodPointer) 声明一个函数指针
//(int a, int b)只能指向有两个int类型的函数
typedef int (*MethodPointer)(int a, int b);
int add(int a, int b) {
return a + b;
}
int del(int a, int b) {
return a - b;
}
void main() {
int a = 2, b = 3;
/**普通调用**/
int c = add(a, b);
cout << c << endl;
c = del(a, b);
cout << c << endl;
/*函数指针调用**/
//m指向 add 函数的地址
MethodPointer m = &add;
//m2指向del函数的地址
MethodPointer m2 = &del;
//通过函数指针调用目标方法
c=m(a,b);
cout << c << endl;
c = m2(a, b);
cout << c << endl;
system("pause");
}
fixed
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。