C语言_指针_函数指针
程序员文章站
2024-03-07 19:31:51
...
函数指针的定义方式
1. 定义函数类型,通过类型来定义指针
//函数名MyFunc其实就是函数的入口地址
int MyFunc(int a, char b)
{
printf("%c是char,%d是int类型\n", b, a);
}
int main(void)
{
typedef int(FUNC_TYPE)(int, char); //定义函数类型
FUNC_TYPE *pFunc = MyFunc; //函数指针指向函数入口地址
pFunc(1, 'a'); //函数指针调用函数(实际上是编译器内部会做解引用)
(*pFunc)(2, 'b'); //函数指针解引用调用函数
system("pause");
return EXIT_SUCCESS;
}
2. 直接定义函数指针类型
//函数名MyFunc其实就是函数的入口地址
int MyFunc(int a, char b)
{
printf("%c是char,%d是int类型\n", b, a);
}
int main(void)
{
typedef int(*FUNC_P)(int, char); //定义函数指针类型
FUNC_P pFunc2 = MyFunc;
pFunc2(3, 'c');
system("pause");
return EXIT_SUCCESS;
}
3. 直接定义函数指针变量
//函数名MyFunc其实就是函数的入口地址
int MyFunc(int a, char b)
{
printf("%c是char,%d是int类型\n", b, a);
}
int main(void)
{
typedef int(*FUNC_P)(int, char); //直接定义函数指针变量
FUNC_P pFunc2 = MyFunc;
pFunc2(3, 'c');
system("pause");
return EXIT_SUCCESS;
}
源码
#include<stdlib.h>
//函数名MyFunc其实就是函数的入口地址
int MyFunc(int a, char b)
{
printf("%c是char,%d是int类型\n", b, a);
}
int main(void)
{
//1.定义函数类型,通过类型来定义指针
typedef int(FUNC_TYPE)(int, char);
FUNC_TYPE *pFunc = MyFunc; //函数指针指向函数入口地址
pFunc(1, 'a'); //函数指针调用函数(实际上是编译器内部会做解引用)
(*pFunc)(2, 'b'); //函数指针解引用调用函数
//2.直接定义函数指针类型
typedef int(*FUNC_P)(int, char);
FUNC_P pFunc2 = MyFunc;
pFunc2(3, 'c');
//3. 直接定义函数指针变量
int(*pFunc3)(int, char) = NULL;
pFunc3 = MyFunc;
pFunc3(4, 'd');
system("pause");
return EXIT_SUCCESS;
}
上一篇: 【数据预处理】Pandas缺失的数据处理
下一篇: [C语言]两个数的交换