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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Latinno 中级黑马   /  2016-4-23 18:12  /  1262 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如何实现一个函数具有多个返回值啊?

其实看到这个问题后,我想到的是if应用的异常处理,但老师今天问这个问题的时候直接蒙圈了。

9 个回复

倒序浏览
函数只能返回一个值,如果想要达到返回多个值的效果,需要指针或数组。
回复 使用道具 举报
卧槽,好高端的问题,小白表示不会,持续关注~
回复 使用道具 举报
是通过指针实现能返回多个结果,但是真正的返回值还是一个,return 0 。
回复 使用道具 举报
堕落天使 发表于 2016-4-24 07:55
是通过指针实现能返回多个结果,但是真正的返回值还是一个,return 0 。

嗯,大神能再回复的具体些么

这个问题在网上找了,但都没有给出这样的思路。。。
回复 使用道具 举报
Latinno 发表于 2016-4-24 22:39
嗯,大神能再回复的具体些么

这个问题在网上找了,但都没有给出这样的思路。。。 ...
  1. /*
  2. 定义多个指针实现返回多个返回值。
  3. */

  4. #include <stdio.h>
  5. void jiSuan(int x,int y,int *jia,int *jian,int *cheng,float *chu){
  6.     *jia = x+y;
  7.     *jian = x-y;
  8.     *cheng = x*y;
  9.     *chu = x/(float)y;
  10. }
  11. int main(int argc, const char * argv[]) {
  12.     int jia,jian,cheng;
  13.     float chu;
  14.    
  15.     int *p = &jia;
  16.     int *p1 = &jian;
  17.     int *p2 = &cheng;
  18.     float *p3 = &chu;
  19.     jiSuan(9, 2, p, p1, p2, p3);
  20.     printf("x+y = %d\nx-y = %d\nx*y = %d\nx/y = %.2f\n",jia,jian,cheng,chu);
  21.     return 0;
  22. }
复制代码

运行结果:
  1. x+y = 11
  2. x-y = 7
  3. x*y = 18
  4. x/y = 4.50
  5. Program ended with exit code: 0
复制代码
回复 使用道具 举报 1 0
哦哦,原来是这个意思。懂了。谢谢了。
回复 使用道具 举报
加油加油加油加油
回复 使用道具 举报
tongtian 发表于 2016-4-25 21:28
加油加油加油加油

谢谢谢谢谢谢谢谢
回复 使用道具 举报
为月薪过万而奋斗
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马