C语言如何声明函数指针,及其简单示例,供初学者参考

首先我们得明确一些事,C语言中函数名称就是函数地址,赋值给指针变量时不需要&取地址运算符,但是只能赋值给与函数声明一样的函数指针,比如

int (*pf)(int a, int b); 这里我们声明了一个函数,函数的名字是保存在指针变量pf中,注意,C语言声明不能从左往右阅读,而是根据优先级阅读,由于()优先级比前缀运算符*高,所以pf作为指针声明必须使用括号括起来,如果不使用括号 像这样     int *pf(int a, int b);那么意思就变成函数名为pf,但pf不是指针变量,不能作为左值,只能作为右值,可以赋值给指针变量,

而int *pf(int a, int b)表示的意思是函数pf的返回值是一个指向int类型的对象

   只有int (*pf)(int a, int b)表示的意思才是函数返回值是int数,pf为指针变量,pf可以作为左值接受赋值

使用指针变量 的好处,我们程序可以使用统一的名字编写程序,使用的函数指针增加很多灵活性

以下给出一个简单示例:

#include<stdio.h>

//声明一个函数指针ptrFunc,其返回类型为int,具有2个int类型的参数 ,以后满足这种形式的函数

//都//可以作为右值赋给函数指针ptrFunc

int (*ptrFunc)(int a, int b);

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

int sub(int a, int b) {
    return a - b;
}

int main() {
    //后面函数名ptrFunc解释为sum,只需修改一个赋值语句
    ptrFunc = sum;

    printf("%d\n",ptrFunc(5, 6));
    printf("hello\n");
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值