深入理解C语言中的指向函数的指针!

 #include<stdio.h>
#include<stdlib.h>

/*
 * 函数和指向函数的指针
 */

void fvoid(){
    /*
     * 定义一个函数
     */
    printf("define as void fvoid()/n");
}

/*
 * 定义一个函数指针,指向函数类型为参数为空,返回值为void。
 */
void (*pvoid)();
/*
 * 一种错误的定义函数方式,千万不要混淆了函数和指针,虽然它们
 * 长相相似,但是下面的变量pp是一个指针,而不是函数,所以不能
 * 像函数这样来定义它!
void (*pp)(){
    printf("invalid define/n");
}
*/

int main(){
    int m=5;
    pvoid=fvoid;/*赋值*/
    fvoid();    /*普通的函数调用*/
    (**fvoid)();/*一种奇异的调用方式*/
    (*pvoid)();    /*普通的通过指针调用*/
    (***pvoid)();/*奇异的通过指针调用*/
    pvoid();    /*另一种调用方式*/
    return 0;
}

/*
 * 总结:函数的调用有多种方式,如上所见,甚至你还可以加N多个指针符号
 * 在函数指针之前来调用函数,千万注意的是不要在使用函数指针调用函数的
 * 时候不要忘记了最后要加上(),因为在C语言中调用函数是一定要()的,不管
 * 有没有参数。
 */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值