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");
}
猜你喜欢
ofc
c#中的数据类型
weblog
3250
c#中的数据类型
c#中的数据类型分为值类型和引用类型
值类型有包括(结构体类型,枚举类型)
引用类型又包括(类类型,数组类型,接口类型,委托类型)
c#数据类型的派生谱系
值类型
file
五子棋游戏(c#)
五子棋 游戏 算法 数据结构 c
1089
下篇分享c#源码~
linux系统
3898
ctrl+c和ctrl+z都是中断命令,但是他们的作用却不一样.ctrl+c强制中断程序ctrl+z的是将任务中断,挂起的状态,ctrl+c是强制中断程序的执行。ctrl+z的是将任务中断.但是此任
blog
java调用c/c++类库(JNI技术)
java基础
2251
java调用c/c++类库(JNI技术)1.在java项目下创建native方法packagejni;/***@authorjiajia*/publicclassJniTest
blog
c#中事件的定义
其他
2510
事件的声明和例子usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text
ofc
c#中的委托类
weblog
2064
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceConsoleApplication3{classProgram{staticvoidMain(string[]args){//Action委托Actiona=newAc
blog
链式队列的基本操作 c++
数据结构与算法
2606
链式队列的基本操作c++classnode{public:intdata;node*next;node*prev;};#include"node.h"classqueue{private:node
ofc
c#方法参数传值问题
weblog
4020
值类型的传值参数方法执行时会为实参创建一个副本,方法内改变形参的值时不会改变实参的值。引用类型的传值参数方法会为实参创建一个副本引用,形参和实参指向的是同一个对象的内存地址,当形参引用的内存地址改变
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。