A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 1871037345 高级黑马   /  2016-8-28 12:57  /  916 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


[C] 纯文本查看 复制代码
//  函数指针
/*
 函数指针的概念:
     函数名存储的就是函数的首地址,我们把这个函数的首地址赋值给一个指针,让这个指针指向该函数,
         可以通过该指针找到并调用该函数。
     把这种指向函数的指针变量称为“函数指针变量”

 1)函数指针定义格式:
       类型  (*指针名)(参数列表); //形参列表可以只写形参类型,不写形参变量名
 2)函数指针初始化格式
       指针名 = 函数名;
 3)用函数指针调用函数(间接访问)格式:
           指针名(参数列表);
       或者
           (*指针名)(参数列表);
 
 函数指针的使用步骤:
     1)定义一个函数指针
     2)初始化函数指针
     3)用函数指针间接调用函数
 */
#include <stdio.h>

int max(int a,int b);
int min(int x,int y);
int main(int argc, const char * argv[]) {
    
    //定义一个函数指针 M,
    //M 可以指向一个返回值为整型,有两个整型参数的所有函数。
    int (*M)(int,int);//形参变量名可以省略,类型一定要写
    
    //初始化函数指针
    M = max;
    //用函数指正间接调用函数
    int ma = M(12,80);//80
    printf("max = %d\n",ma);
    
//==================================================
    
    //改变函数指针的指向,重新赋值
    M = min;
    //用函数指正间接调用函数
    int n = (*M)(1,99);//1,用 (*M) 的括号一定不能少,
    printf("min = %d\n",n);
    
    return 0;
}

//求两个数中的最大值
int max(int a,int b){

    int m = a > b ? a : b;

    return m;
}

//求两个数中的最小值
int min(int x,int y){

    int m = x < y ? x : y;
    
    return m;
}




2 个回复

倒序浏览
Gyj900730@ 来自手机 中级黑马 2016-8-28 15:23:08
沙发
有例题,很详细,
回复 使用道具 举报
Gyj900730@ 发表于 2016-8-28 15:23
有例题,很详细,

谢谢,多多交流
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马