📜  C |指针基础问题10(1)

📅  最后修改于: 2023-12-03 14:59:38.371000             🧑  作者: Mango

C语言指针基础问题10介绍

在 C 语言中,指向函数的指针也是一种重要的指针类型,可用于调用函数、动态生成函数等。

函数指针的声明

函数指针的声明需要指定该函数指针可以指向哪种类型的函数,同时必须指定函数指针所需的参数类型和返回值类型。

返回值类型 (*指针变量名)(参数类型1, 参数类型2, ..., 参数类型n);

例如:

int (*funcPtr)(int, int); // 声明一个函数指针,可以指向返回值为 int,接受两个 int 类型参数的函数
函数指针的赋值和调用

函数指针变量可以通过函数名或者函数地址进行赋值,并且可以使用指针函数名或者函数指针变量名调用函数。

#include <stdio.h>

int add(int a, int b) {
    return a + b;
}

int main() {
    int (*funcPtr)(int, int) = add; // 将函数指针变量 funcPtr 赋值为 add 函数的地址
    printf("%d\n", (*funcPtr)(1, 2)); // 通过函数指针变量名调用函数
    printf("%d\n", add(1, 2)); // 通过函数名调用函数
    return 0;
}

输出结果:

3
3
函数指针的数组和复杂声明

函数指针也可以组成数组、指向指针的指针、指向返回函数指针的函数指针等复杂类型。

例如,以下是一个指向返回值为 int,接收两个 int 类型参数的函数指针数组的声明:

int (*funcPtrArr[3])(int, int);
总结

本文介绍了 C 语言中函数指针的声明、赋值、调用以及复杂类型声明等问题,掌握函数指针的使用将能够使得程序更加灵活、模块化。