函数指针

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;
}
上一篇下一篇

猜你喜欢

热点阅读