用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c代码库

C函数指针

2013-09-25 作者: 免费源代码下载整理举报

[c]代码库

#include <stdio.h>

/*  
    p_fun_type 只是定义一个类型,就像typedef int* p_int中的p_int代表
    一个整形的指针类型一样
*/
typedef int (*p_fun_type)(int);

int Fun(int n)
{
    printf("the test number is %d n",n);
    return n;
}

/* 函数指针做形参    */
int Fun_PP(int n,p_fun_type pf)
{
    return n + pf(200);
}

/*
这个函数,函数名是PFun,行参为整形类型b,
返回值是int (*) (int)
*/
int (*PFun(int b))(int)
{
    printf("===========================n");
    return Fun;
}

/* 返回一个函数指针 */

int main ()
{
    // 函数指针,P_fun可以指向任何返回值为void参数为int的函数
    int (*P_fun)(int);

    Fun(10);

    /*  
    printf("----------fen ge xian 0000000000000 ---------n");
    P_fun = &Fun;
    (*P_fun)(20);   
    */

    /*
    Fun的函数名与P_fun函数指针都是一样的,即都是函数指针。
    Fun函数名是一个函数指针常量,而P_fun是一个函数数指针变量
    */
    printf("----------fen ge xian 1111111111111 ---------n");
    P_fun = Fun;
    P_fun(20);


    /*
    printf("----------fen ge xian 22222222222222 ---------n");
    p_fun_type fun_type;
    fun_type = &Fun;
    (*fun_type)(6333);
    */
    printf("----------fen ge xian 33333333333333 ---------n");
    p_fun_type fun_type;
    fun_type = &Fun;
    int sum = Fun_PP(300,fun_type);
    printf("sum = %dn",sum);

    printf("----------fen ge xian 44444444444444 ---------n");
    p_fun_type fun_fromFun = PFun(100);
    fun_fromFun(9999);

    return 0;
}


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...