在C语言中,函数只能返回一个值,要返回两个值,可以改换思路,通过其它方式做到。

1 建立数组,返回数组首地址(指针)。

在要返回的两个值类型相同时,可以用创建数组的方式,将要返回的值存在数组中,并返回数组首地址,这样就可以实现返回两个值的效果。
需要注意的是,要返回数组首地址,那么返回的值不可以是局部变量,有如下几种是可以的:
a) 使用静态局部变量存储,并返回地址;
b) 使用全局变量存储,返回地址;
c) 函数中动态分配内存,并返回申请到的地址,此种方法需要注意,在使用后需要释放;
d) 在参数中传入数组地址,并返回。即返回的实际上是主调函数中的变量地址。

2 建立结构体,返回结构体指针/结构体变量。

将需要返回的值,写成结构体形式,并返回结构体变量或返回结构体指针,这样可以实现一个返回值中含有多组数据。

3 当数据规模较小时,可以采用将小规模数据合并为大规模数据的方式,进行返回。

比如,需要返回两个char型数据时,可以通过返回一个short数据,高地位分别存储各自的值。

4 输出型参数返回

还可以不使用返回值的方式,而是通过函数参数传值,如使用输出型参数,举个例子:对于strcpy函数原型:

char *strcpy(char *strDest,const char *strSrc)

解析:strDest为输出型参数。

输出型参数与输入形参数解析:一般不带const的是输出型参数,使用const修饰的是输入形参数,如strSrc

5 使用全局变量

C语言基础知识:C语言函数调用怎么返回两个值相关推荐

  1. 单片机c语言基础知识,c语言必背100代码有哪些?

    我记得刚开始接触编程的时候,觉得太难了. 也很好奇,写代码的那些人也太厉害了吧?全是英文的,他们的英文水平一定很好吧? 他们是怎么记住这么多代码格式的?而且错了一个标点符号,整个程序都会有影响. 一个 ...

  2. c++语言基础知识,c++语言基础知识汇总.ppt

    <c++语言基础知识汇总.ppt>由会员分享,可在线阅读,更多相关<c++语言基础知识汇总.ppt(68页珍藏版)>请在人人文库网上搜索. 1.1,第二章 C+语言初步,本章主 ...

  3. C语言基础知识入门和C语言入门基础知识大全

    一.C语言基础知识入门 C语言一出现,就以其丰富的功能.强大的表达能力.灵活性.方便性和广泛的应用,在世界范围内迅速普及和普及.C语言不仅高效而且可移植.它可以用来开发应用软件.驱动程序.操作系统等. ...

  4. 常用的计算机C语言,计算机c语言基础知识

    计算机c语言基础知识 C语言程序设计是高效计算机专业学生必修的一门基础课程,那么你对计算机c语言了解多少呢?下面是小编整理的计算机c语言基础知识,欢迎大家阅读参考. 计算机c语言的特性 C语言是世界上 ...

  5. c语言10以内位运算,C语言基础知识--位运算

    1.原码,反码,补码: (1)在n位的机器数中,最高位为符号位,该位为零表示为正,为一表示为负:其余n-1位为数值位,各位的值可为零或一.当真值为正时,原码.反码.补码数值位 完全相同:当真值为负时, ...

  6. c语言基础知识点总结ppt,《C语言基础知识》PPT课件.ppt

    <<C语言基础知识>PPT课件.ppt>由会员分享,可在线阅读,更多相关<<C语言基础知识>PPT课件.ppt(29页珍藏版)>请在人人文库网上搜索. ...

  7. 编程语言基础c语言第5版讲解,《程序设计基础》C语言基础知识讲解.ppt

    <<程序设计基础>C语言基础知识讲解.ppt>由会员分享,可在线阅读,更多相关<<程序设计基础>C语言基础知识讲解.ppt(54页珍藏版)>请在人人文库 ...

  8. C语言基础知识总结大全(建议收藏)

    前言:C语言是当代人学习及生活中的必备基础知识,应用十分广泛,下面为大家带来C语言基础知识梳理总结,C语言零基础入门绝对不是天方夜谭! 1 算法结构 一.顺序结构.选择结构.循环结构:二.循环结构又分 ...

  9. 2023年C语言基础知识入门(大全)

    一.C语言基础知识入门 C语言一经出现就以其功能丰富.表达能力强.灵活方便.应用面广等特点迅速在全世界普及和推广.C语言不但执行效率高而且可移植性好,可以用来开发应用软件.驱动.操作系统等.C语言也是 ...

最新文章

  1. 了解下RDF Schema (RDFS)
  2. 设计模式之一:单例模式
  3. Vue.js 进入/离开 列表过渡
  4. 计算机系统基础:虚拟存储管理知识笔记
  5. infobright安装部署及参数调整优化
  6. Uber无人车安全员之困:这是一份机械、枯燥、影响心理的工作
  7. ZABBIX各版本之间的兼容性​
  8. 机器学习中五种常用的聚类算法
  9. Houdini 官方HDA SideFX Labs 安装
  10. 为什么要进行前后端分离
  11. 【开源小软件 】Bing每日壁纸 V1.2.1
  12. 【Block-Level Verification】 芯片开发通识_验证目标_ 验证语言_ 验证职业前景 _挑战和瓶颈_验证周期_功能描述文档_验证计划_回归测试_硅后测试_逃逸分析...
  13. Xshell官方免费版
  14. 计算机连接无线网络的步骤,笔记本怎么连接wifi超详细教程
  15. 互联网IT就业市场,你要说最有市场的一定是它,java面试常见笔试题
  16. DDPG(Deep Deterministic Policy Gradient)
  17. vmware无法使用nat上网解决方式
  18. python字符串拼接变量_python—字符串拼接三种方法
  19. 智能中子混音插件:iZotope Neutron 3 Advanced for mac
  20. cl.zk0.info/index.php,兄弟连区块链入门到精通教程btcpool矿池源码分析环境搭建

热门文章

  1. 重装系统遇上reboot and select proper boot device ...问题解决方案
  2. 新工科建设形势下的计算机类专业人才培养方案
  3. mini6410 用fb显示bitmap
  4. 个人户口档案转移笔记(适用北京集体户口)
  5. 力扣第314周赛第三题
  6. Pytorch基本操作(5)——torchvision中的Dataset以及Dataloader
  7. 可供Office多种版本使用的无PIA或_VtblGap的加载外接程序
  8. 「论文翻译」Graph convolutional networks for computational drug development and discovery
  9. 漫说测试 | 研发虐我千百遍,我待bug如初恋
  10. CF1169C. Increasing by Modulo(二分)