指针函数&函数指针详解(通俗易懂版)

在C语言中,指针是一个存储另一个变量内存地址的变量。指针函数和函数指针是两种不同的概念,但它们都与函数和指针的使用有关。下面我会分别解释它们,并给出例子。

指针函数(Function Pointers)

指针函数实际上是指函数的指针。每个函数在C语言中都有一个内存地址,函数指针就是用来存储这个地址的变量。你可以使用函数指针来调用函数,就像使用普通函数名一样。

示例:

#include <stdio.h>

// 定义一个函数
void greet() {
    printf("Hello, World!\n");
}

int main() {
    // 创建一个函数指针,指向greet函数
    void (*functionPtr)() = greet;

    // 使用函数指针调用函数
    functionPtr();

    return 0;
}

在这个例子中,functionPtr 是一个函数指针,它指向 greet 函数。通过调用 functionPtr(),我们实际上是在调用 greet 函数。

函数指针数组(Function Pointers Array)

函数指针还可以组成数组,每个元素指向不同的函数。

示例:

#include <stdio.h>

void greet() {
    printf("Hello, World!\n");
}

void farewell() {
    printf("Goodbye, World!\n");
}

int main() {
    // 创建一个函数指针数组
    void (*functions[])() = {greet, farewell};

    // 调用数组中的函数
    functions[0](); // 输出 "Hello, World!"
    functions[1](); // 输出 "Goodbye, World!"

    return 0;
}

指针函数(Pointer to Function)

指针函数通常是指一个函数,它的参数或者返回值是指针类型。这并不是C语言中的一个标准术语,但有时人们会这样称呼。

示例:

#include <stdio.h>

// 一个函数,它的参数是一个整型指针
void increment(int *value) {
    (*value)++; // 增加指针指向的值
}

int main() {
    int num = 5;
    increment(&num); // 调用increment函数,传入num的地址
    printf("%d\n", num); // 输出 "6"

    return 0;
}

在这个例子中,increment 函数接受一个整型指针作为参数,然后增加该指针指向的值。

总结

  • 函数指针 是用来存储函数地址的变量,可以像使用函数名一样使用它来调用函数。
  • 指针函数 通常指的是参数或返回值是指针类型的函数,但这不是C语言的标准术语。

希望这些示例能帮助你更好地理解这两个概念。在实际编程中,函数指针常用于回调函数、多态实现等场景。

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值