函数指针和指针函数的区别

目录

一、函数指针

二、指针函数


  • 函数指针是指向函数的指针,可以存储函数的地址并通过它来调用函数;指针函数则是返回指针的函数,其本质是一个函数,返回值是一个指针。
  • 函数指针的定义中,指针符号 * 在函数名的前面,表示它是一个指针;指针函数的定义中,指针符号 * 在返回类型的后面,表示函数返回一个指针。

一、函数指针

  • 定义:函数指针是一个指向函数的指针,可以通过它来调用函数。它保存了一个函数的地址,可以指向任何具有相同签名(返回类型和参数列表)的函数。
  • 语法
返回类型 (*指针名)(参数类型);
  • 示例
// 定义一个函数
int add(int a, int b) {
    return a + b;
}

// 定义一个函数指针
int (*funcPtr)(int, int);

// 将函数的地址赋给函数指针
funcPtr = add;

// 使用函数指针调用函数
int result = funcPtr(2, 3);  // result = 5
  • 用途:函数指针常用于回调函数、函数数组、实现多态等场景。

二、指针函数

  • 定义:指针函数是一个返回指针的函数。这个函数的返回类型是一个指针。
  • 语法
返回类型* 函数名(参数类型);
  • 示例
// 定义一个返回指针的函数
int* getPointer() {
    static int value = 10;
    return &value;
}

// 调用指针函数
int* ptr = getPointer();  // ptr 指向 value
  • 用途:指针函数常用于返回动态分配内存的地址或者返回某个对象的地址。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值