函数指针是一种特殊的 指针,它指向函数的入口。
例如int (*add)(int, int);定义了一个函数指针add,用于指向返回值为int,并且有两个int参数的函数,下面用实例来说明
#include<iostream>
using namespace std;
int addfunc(int a, int b) {
return a + b;
}
int main() {
int (*add)(int, int) = addfunc; //第一种赋值函数的方法
//两种方法都可以
//int (*add)(int, int) = &addfunc;//第二中赋值函数的方法
int result = (*add)(1, 2); //第一种调用的方法
//两种方法都可以,建议使用第一种
//int result = add(1, 2); //第二种调用的方法
cout << "通过函数指针调用函数进行计算结果:" << result << endl;
result = addfunc(1, 2);
cout << "通过直接调用函数进行计算结果:" << result << endl;
return 0;
}
本文将对第一种赋值(调用)和第二种赋值(调用)进行讲解
1、第一种赋值相当于将函数的变量地址赋给 add
2、第二种赋值相当于将函数体本身赋值给(*add)
同理:第一种调用方法在告诉计算机函数体,然后传给计算机两个参数,执行相关的函数
第二种调用方法只是告诉了计算机函数体的入口地址,计算机通过入口地址找到函数,然后在进行调用。