CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

怎么在一个子函数中返回多个返回值

楼主oh_me_dive(飞到山的那一边)2002-12-06 16:29:06 在 C/C++ / C语言 提问

怎么在一个子函数中返回多个返回值,假设返回值类型一样 问题点数:10、回复次数:9Top

1 楼winco(老狼)回复于 2002-12-06 16:34:53 得分 0

void   test(int&   a,int&   b,int&   c,   int*   d)  
  {  
        ……  
  }Top

2 楼wang_rui_bing_(啊福)回复于 2002-12-06 16:46:44 得分 0

struct   RESULT  
  {  
          int   count;  
          所需类型   *result;  
  }  
  RESULT *test(void)  
  {  
          RESULT   *ret   =(RESULT   *)malloc(sizeof(RESULT));  
          ret->result(所需类型   *)malloc(sizeof(所需类型));  
          return   ret;  
  }  
  UP   的也可以Top

3 楼termite(★★★★★)回复于 2002-12-06 16:48:37 得分 0

参数。Top

4 楼oh_me_dive(飞到山的那一边)回复于 2002-12-06 16:53:44 得分 0

比如main中比较a,b,调用子函数:如果a>b,c=a+1,d=b+1;否则c=a-1,d=b-1;  
  能写段程序吗Top

5 楼flasty(对你笑容一闪)回复于 2002-12-06 16:56:17 得分 0

用指针做参数传到函数里,比如:  
  定义:  
  void   function(int   &a,int   &b)  
  {  
        XXXX;  
  }  
   
  调用:function(i,j)  
  执行后i,j的值在函数中已被改变(假设在函数体里对i,j进行了操作)  
   
  Top

6 楼xdspower(杂食菜熊)回复于 2002-12-06 17:13:36 得分 10

一般在一个函数中返回多个值有多个方法,  
  一就是把要返回的值打包到一个类型中,返回类型的实例,比如wang_rui_bing_(啊福)   的方法,这也包括返回对象实例。  
  二就是在传入的参数中有专门接收结果的参数变量量,这又分两种情况,一是实际参数传入的值是有效的,另一种是传入的值是在函数中无效的(仅仅作为接收结果用),对于第一种,由于值是有效的,必然是初始化了的,但要注意的是第二种情况的参数实例也必须要初始化。:   winco(老狼)   (   )   的方法其实就是这样的  
  三就是直接返回一定类型的指针,由于有其他约定,可以明确需要的位置和数量,比如标准库函数申请内存空间的函数maollc就是这样的,不过这样除非是十分必要否则最好不要采用,毕竟不容易维护,要尽量少用。Top

7 楼xdspower(杂食菜熊)回复于 2002-12-06 17:19:17 得分 0

void   mf(int   a,int   b,int*   c,int*   d){  
          int   l=100;  
          if(a>b)c=a+l,d=b+l;  
          else   c=a-l,d=b-l;  
  }  
  void   main(void){  
      int   a=100;  
      int   b=99;  
      int   c=0;  
      int   d=0;  
  fm(a,b,&c,&d);  
  printf("%d,%d",c,d):  
  }  
  Top

8 楼xdspower(杂食菜熊)回复于 2002-12-06 17:19:39 得分 0

void   mf(int   a,int   b,int*   c,int*   d){  
          int   l=100;  
          if(a>b)c=a+l,d=b+l;  
          else   c=a-l,d=b-l;  
  }  
  void   main(void){  
      int   a=100;  
      int   b=99;  
      int   c=0;  
      int   d=0;  
  mf(a,b,&c,&d);  
  printf("%d,%d",c,d):  
  }  
  Top

9 楼langziji(大象)回复于 2002-12-06 17:45:11 得分 0

多写几个return不就可以了嘛!嘿嘿。Top

相关问题

  • 子函数怎么返回CStdioFile类型得值
  • 关于子函数的返回值
  • 32位汇编自定义子函数的返回值问题
  • 如何将子函数的返回值传到主程序中去?谢谢谢谢。
  • 在tc环境下,子函数如何返回多个指针?
  • 键盘钩子函数执行两次,怎么解决?
  • fprintf怎么在主函数和子函数中应用啊?
  • 钩子函数????
  • 钩子函数
  • 子函数调用?

关键词

  • 函数
  • 子函数
  • 返回
  • 参数
  • 类型
  • 传入
  • 实例
  • 比如
  • mf
  • 就是

得分解答快速导航

  • 帖主:oh_me_dive
  • xdspower

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo