通常我们都会遇到会要求我们利用相关步骤进行运算,并且其结果可能涉及到多个值,此时,利用函数较为方便,但是对于C语言来说,要求单一出口原则,只能返回一个值,这时就无法实现。

通常我们可以通过如下方法进行多个值的返回

1.建立数组,并将数组作为参数传入函数中,注:传入函数时无法使用sizeof(A)/sizeof(A0)来获得数组的个数具体可看:数组名作为函数参数以及sizeof用法_小时候挺菜的博客-CSDN博客

主要的意思是说,将数组作为参数传入函数之后,其(A这个符号就不在代表A这个数组,跳出该函数之后还是可以作为就变成了指向第一个位置A[0]的指针,通过sizeof(A)得到的不在是数组A的大小,而是指向第一个位置的指针的大小。因此想要得到数组的长度,必须要单独传入一个单独的参数代表长度如:LEN。

2.通过单一的指针,当我们需要得到的返回值在2个或几个,无法通过函数单一的返回时,除了通过数组进行赋值之外,我们还可以直接将对应的值定义之后,在对其进行指针的定义然后将指针传入,利用指针对该值进行修改。

int divide(int a,int b,int *result){//此处int *result要求传入一个int型指针,在调用时传入对应的地址就可int ret=1;if(b==0) ret=0;else{*result=a/b;}return ret;
} 

3.通过结构体的指针进行运算,这种方法适合于要赋值的对象有多个属性/值,又有多个对象,我们就可以建立一个结构体,然后通过结构体的指针来实现。然后在函数中对结构体成员进行赋值就可实现。

C语言 函数返回多个值方法相关推荐

  1. C语言函数返回多个值的方法

    1.指针 2.全局变量(基本不用了) #include <stdio.h> zmn(int h,int k,int *sum,int *dif); void main() { int x= ...

  2. Android JNI编程(三)——C语言指针的初步认识、指针变量、互换两个数、函数返回多个值...

    版权声明:本文出自阿钟的博客,转载请注明出处:http://blog.csdn.net/a_zhon/. 目录(?)[+] 一.什么是指针? 简单来说: 指针就是内存地址      内存地址就是指针. ...

  3. python函数返回多个值_python函数返回多个值的示例方法

    python可以返回多个值,确实挺方便 函数里的return只能返回一个值,但是返回类型是没是限制的 因此,我们可以"返回一个 tuple类型,来间接达到返回多个值". 例子是我在 ...

  4. C语言通过指针间接的实现函数返回多个值

    C语言通过指针间接的实现函数返回多个值 本例题中通过把指针作为函数参数来传递,依次达到改变变量的值的目的,最后实现一个函数返回两个变量的值 int *X,*X应该被看成一个整体来看,表示一个整形. # ...

  5. C语言return的用法详解,C语言函数返回值详解。 (本次转载仅供学习,感谢原创!!转发自C语言中文网,如有侵权请私信本人删除)

    C语言return的用法详解,C语言函数返回值详解 转载:http://c.biancheng.net/view/1855.html 函数的返回值是指函数被调用之后,执行函数体中的代码所得到的结果,这 ...

  6. C语言函数返回值与参数传递

    C语言函数返回值与参数传递 一:参数传递 C语言的函数中必不可少的就是参数传递,可以采用传值和传指针两种方式. 1.传值的形式:只是将参数值的拷贝传给函数,并非参数本体如: int test(int ...

  7. c语言函数返回值类型必须,C++中函数类型与定义的函数返回值类型必须相同么?...

    C++中函数类型与定义的函数返回值类型必须相同么?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C++中函数类型与定义 ...

  8. c语言自定义函数多个返回值,C语言函数返回值

    C语言函数返回值教程 如果,我们希望函数不返回任何值,那么我们需要显式的指明其返回类型为 C语言函数不返回值 语法 void funcName(paramType1 param1, paramType ...

  9. 关于C语言函数返回数组的问题【转】

    (转自:https://blog.csdn.net/earbao/article/details/53401800) 关于C语言函数返回一个数组 c语言中函数不能直接返回一个数组,但是可以用其他方式实 ...

最新文章

  1. Android分享功能
  2. MaxCompute的任务状态和多任务执行
  3. 1spring注解:@Configuration,@Bean,@ComponentScan(),@Scope
  4. win10+tensorflow faster-RCNN 训练自己的数据集
  5. 研究CV、研究美,MMFashion开源库升级~
  6. web.xml mysql_JSP登录验证脚本失败(mysql后端)web.xml servlet映射?
  7. Spring 基础技术点
  8. 杂谈!了解一些额外知识,让你的前端开发锦上添花
  9. Windows10搭建PHP7开发环境
  10. hdoj1176 免费馅饼(dp 数塔)
  11. WIN7英文操作系统,中文语言包安装。及部分开发环境,软件中文乱码问题解决。
  12. 音频属性采样率、通道数、位数、比特率、帧等
  13. AIDL简单实用新手教程(AIDL 包含回调,耗时处理,in out inout oneway使用、打包jar等内容) 附demo下载
  14. opengl绘制三维人物luweiqi
  15. 通过adb模拟快速的屏幕点击,小米手机亲测有效
  16. 百度地图API权限部分
  17. 实验.........
  18. Python大法之从火车余票查询到打造抢Supreme神器
  19. LINUX 学习方法 (兄弟连)
  20. 若要运行应用程序,您必须首先安装 .NET Framework 4.0 解决办法

热门文章

  1. 哈尔滨理工大学第七届程序设计竞赛初赛 题集
  2. SCI一区期刊专辑征稿 | 社会大数据隐私、安全与前沿计算主题
  3. 定向网络攻击分析与防御
  4. 卷起来了!往届最快1.5个月完成见刊检索的IEEE学术会议
  5. vue v-html字体大小修改,详解三种方式解决vue中v-html元素中标签样式
  6. linux命令 dd
  7. 小赢科技2020年一季报:由盈转亏1.96亿,M3以下贷款逾期率翻倍达6.71%
  8. 部分赛车游戏对方向盘支持程度记录
  9. 慎入!超详细240页PPT!史上最强大的计算机网络导论!
  10. 今日份PS练习|长春花蓝海报设计稿预览