1.函数指针
(1)函数指针的定义
函数:完成某一个特定功能的代码块;
指针:它是一种特殊的变量,用来保存地址值,指针是有类型的,某类型的指针指向某类型的地址。
函数指针:顾名思义,通过一个指针指向一个函数的地址
定义格式:返回值 (*指针名)(参数列表);
比如:
int add(int a, int b)
{
return (a + b);
}
这段代码在编译生成后存储在代码区,而这段代码其实是可以取到地址,而其地址就是函数名。我们可以使用指针存储这个函数的地址—函数指针。
对于上述函数的函数指针定义:
int (*p)(int,int) //参数列表中可以写形参也可以不写
也可以写成
int (*)(int a, int b)
(2)通过函数指针去调用函数
直接像使用函数名一样使用函数指针来调用函数,即:
函数指针名(参数列表)
示例:
#include <stdio.h>
// 两个数相加
int add(int a, int b)
{
return (a + b);
}
// 求平方
int square(int a)
{
return (a*a);
}
int main()
{
int(*p)(int, int);
//printf("p未做赋值前 = %p\n", p