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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 四季列车 中级黑马   /  2014-3-13 22:46  /  1419 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  • #include <stdio.h>  
  • typedef int(*Count)(int,int);  
  •   
  • int sum(int a ,int b){  
  •    return a+b;  
  • }  
  • int min(int a ,int b){  
  •     return a-b;  
  • }  
  • int main(){  
  •     Count count1=sum;  
  •     Count count2=min;  
  •     printf("%d\n",count1(2,3));  
  •     printf("%d\n",count2(2,3));  
  •     return 0;  
  • }  
  • 上面这段代码怎么解释???

2 个回复

倒序浏览
typedef int(*Count)(int,int);  
定义了一个返回类型为int,参数为两个int的函数指针;
比如有多个同类型的函数(返回类型为int,参数为两个int),然后根据不同条件将指针指向某具体函数,实现某具体处理。这样做的好处是可以统一处理(执行)一类操作。
如:Count count1=sum;  
      Count count2=min;
回复 使用道具 举报
#include <stdio.h>  
typedef int(*Count)(int,int);//定义一个函数指针变量类型  Count 形参是两个int型数据 返回一个int型数据
  
int sum(int a ,int b){    //定义一个求加法的函数 返回和值
   return a+b;  
}  
int min(int a ,int b){  //定义一个求减法的函数 返回差值
    return a-b;  
}  
int main(){  
    Count count1=sum;  // 定义一个函数指针  count1 ,并且 count1指向sum这个函数
    Count count2=min;  //定义一个函数指针  count2 ,并且 count2指向min这个函数
    printf("%d\n",count1(2,3));  //求2+3的和值 并打印
    printf("%d\n",count2(2,3));  //求2-3的差值 并打印
    return 0;  
}  
回复 使用道具 举报 2 0
您需要登录后才可以回帖 登录 | 加入黑马