黑马程序员技术交流社区

标题: 函数返回值问题 [打印本页]

作者: Latinno    时间: 2016-4-23 18:12
标题: 函数返回值问题
如何实现一个函数具有多个返回值啊?

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

作者: a_skting    时间: 2016-4-23 23:21
函数只能返回一个值,如果想要达到返回多个值的效果,需要指针或数组。
作者: 烛风小糊涂    时间: 2016-4-23 23:43
卧槽,好高端的问题,小白表示不会,持续关注~
作者: 堕落天使    时间: 2016-4-24 07:55
是通过指针实现能返回多个结果,但是真正的返回值还是一个,return 0 。
作者: Latinno    时间: 2016-4-24 22:39
堕落天使 发表于 2016-4-24 07:55
是通过指针实现能返回多个结果,但是真正的返回值还是一个,return 0 。

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

这个问题在网上找了,但都没有给出这样的思路。。。
作者: 堕落天使    时间: 2016-4-25 07:42
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
复制代码

作者: Latinno    时间: 2016-4-25 20:54
哦哦,原来是这个意思。懂了。谢谢了。
作者: tongtian    时间: 2016-4-25 21:28
加油加油加油加油
作者: Latinno    时间: 2016-4-25 21:55
tongtian 发表于 2016-4-25 21:28
加油加油加油加油

谢谢谢谢谢谢谢谢
作者: tongtian    时间: 2016-4-26 21:55
为月薪过万而奋斗




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2