C语言函数指针用法
函数指针本质上是指针,它指向一个函数。
例如int (*p)(int); – 从 p 处开始, 先与指针结合, 说明 p 是一个指针, 然后与()结合, 说明指针指向的是一个函数, 然后再与()里的 int 结合, 说明函数有一个int 型的参数, 再与最外层的 int 结合, 说明函数的返回类型是整型, 所以 p 是一个指向有一个整型参数且返回类型为整型的函数的指针。
给出一个实例能够更好的理解:
#include "stdio.h" void print(void) {
printf("print\n"); } void PRINT(void) {
printf("PRINT\n"); } //定义了一个别名为p0的函数指针 typedef void (*p0)(void); //使用时要定义一个变量p0 p; /*/ int (*p1)(int c,int d); //等价于int (*p1)(int,int); int add(int a,int b) {
return a+b; } int main(void) {
p0 p; p = print; p1 = add; (*p)();//打印print printf("\n%d\n",(*p1)(1,2));//打印3 p = PRINT; (*p)();//打印PRINT return 0; }
打印结果:

由此可以看出,函数的函数名就是这个函数的地址,可以将函数地址赋给函数指针,通过函数指针直接调用此函数。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/217044.html原文链接:https://javaforall.net
