函数指针:是一个特殊的指针,用于指向函数。
和通过函数名调用一样,函数指针给我们提供了另一种调用函数的可能。函数指针具备变量的特性,可以作为参数传递,可以函数返回。
1. 普通指针的写法
int *p; //指针p,指向int类型的变量
2. 函数指针的写法
第一步:准备一个函数func()。
- 函数名: func()
- 参数列表:int a
- 返回值:void
void func(int a){
cout << "a = " << a << endl; //输出a的值
}
第二步: 定义一个函数指针p
- (*p) :定义指针p
- (int a) :函数func()的参数列表int a
- void :与函数func()的返回类型void相同
- func:等号右边的函数不加()
# 定义一个指针p,指向函数func()。与普通指针不同的是,函数指针p有参数列表和返回值
void (*p)(int a) = func;
第三步:调用函数指针p
p(10); //参数a的值是10,返回值为void
3. 函数指针的完整程序
(该程序在使用到命名空间std时加上了std::,没有在程序开通引入命名空间std)
#include <stdio.h>
#include <iostream>
//定义函数func()
void func(int a){
std::cout << "a = " << a <<std::endl;
}
void main(){
void(*p)(int a) = func; //定义函数指针p,指向函数func()
p(10); //调用函数指针p,参数为10
}
输出结果为:
a = 10