函数指针
2022-10-08 本文已影响0人
arkliu
函数指针
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define STU_SIZE 3
// 指针函数
// ()优先级比*高,它是函数,返回值是指针类型的函数
// 返回指针类型的函数
int * fun() {
int * p = (int *)malloc(sizeof(int));
return p;
}
int fun2(int a) {
printf("a = %d\n", a);
return 0;
}
int main() {
// 函数指针,是指针,指向函数的指针
// 定义函数指针变量有三种方式:
// 1. 先定义函数类型,根据类型定义指针变量
// 有typedef是类型,没有是变量
typedef int FUN(int a);
FUN * p = NULL; //函数指针变量
p = fun2; // p指向fun2函数
p(3); // 函数指针变量调用方式
// 2. 先定义函数指针类型,根据类型定义变量
typedef int (*PFUN)(int a);
PFUN p1 = fun2;
p1(8);
// 3. 直接定义函数指针变量
int(*p2)(int a) = fun2;
p2(55);
return 0;
}