C语言基础知识:C语言函数调用怎么返回两个值
在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语言函数调用怎么返回两个值相关推荐
- 单片机c语言基础知识,c语言必背100代码有哪些?
我记得刚开始接触编程的时候,觉得太难了. 也很好奇,写代码的那些人也太厉害了吧?全是英文的,他们的英文水平一定很好吧? 他们是怎么记住这么多代码格式的?而且错了一个标点符号,整个程序都会有影响. 一个 ...
- c++语言基础知识,c++语言基础知识汇总.ppt
<c++语言基础知识汇总.ppt>由会员分享,可在线阅读,更多相关<c++语言基础知识汇总.ppt(68页珍藏版)>请在人人文库网上搜索. 1.1,第二章 C+语言初步,本章主 ...
- C语言基础知识入门和C语言入门基础知识大全
一.C语言基础知识入门 C语言一出现,就以其丰富的功能.强大的表达能力.灵活性.方便性和广泛的应用,在世界范围内迅速普及和普及.C语言不仅高效而且可移植.它可以用来开发应用软件.驱动程序.操作系统等. ...
- 常用的计算机C语言,计算机c语言基础知识
计算机c语言基础知识 C语言程序设计是高效计算机专业学生必修的一门基础课程,那么你对计算机c语言了解多少呢?下面是小编整理的计算机c语言基础知识,欢迎大家阅读参考. 计算机c语言的特性 C语言是世界上 ...
- c语言10以内位运算,C语言基础知识--位运算
1.原码,反码,补码: (1)在n位的机器数中,最高位为符号位,该位为零表示为正,为一表示为负:其余n-1位为数值位,各位的值可为零或一.当真值为正时,原码.反码.补码数值位 完全相同:当真值为负时, ...
- c语言基础知识点总结ppt,《C语言基础知识》PPT课件.ppt
<<C语言基础知识>PPT课件.ppt>由会员分享,可在线阅读,更多相关<<C语言基础知识>PPT课件.ppt(29页珍藏版)>请在人人文库网上搜索. ...
- 编程语言基础c语言第5版讲解,《程序设计基础》C语言基础知识讲解.ppt
<<程序设计基础>C语言基础知识讲解.ppt>由会员分享,可在线阅读,更多相关<<程序设计基础>C语言基础知识讲解.ppt(54页珍藏版)>请在人人文库 ...
- C语言基础知识总结大全(建议收藏)
前言:C语言是当代人学习及生活中的必备基础知识,应用十分广泛,下面为大家带来C语言基础知识梳理总结,C语言零基础入门绝对不是天方夜谭! 1 算法结构 一.顺序结构.选择结构.循环结构:二.循环结构又分 ...
- 2023年C语言基础知识入门(大全)
一.C语言基础知识入门 C语言一经出现就以其功能丰富.表达能力强.灵活方便.应用面广等特点迅速在全世界普及和推广.C语言不但执行效率高而且可移植性好,可以用来开发应用软件.驱动.操作系统等.C语言也是 ...
最新文章
- 了解下RDF Schema (RDFS)
- 设计模式之一:单例模式
- Vue.js 进入/离开 列表过渡
- 计算机系统基础:虚拟存储管理知识笔记
- infobright安装部署及参数调整优化
- Uber无人车安全员之困:这是一份机械、枯燥、影响心理的工作
- ZABBIX各版本之间的兼容性​
- 机器学习中五种常用的聚类算法
- Houdini 官方HDA SideFX Labs 安装
- 为什么要进行前后端分离
- 【开源小软件 】Bing每日壁纸 V1.2.1
- 【Block-Level Verification】 芯片开发通识_验证目标_ 验证语言_ 验证职业前景 _挑战和瓶颈_验证周期_功能描述文档_验证计划_回归测试_硅后测试_逃逸分析...
- Xshell官方免费版
- 计算机连接无线网络的步骤,笔记本怎么连接wifi超详细教程
- 互联网IT就业市场,你要说最有市场的一定是它,java面试常见笔试题
- DDPG(Deep Deterministic Policy Gradient)
- vmware无法使用nat上网解决方式
- python字符串拼接变量_python—字符串拼接三种方法
- 智能中子混音插件:iZotope Neutron 3 Advanced for mac
- cl.zk0.info/index.php,兄弟连区块链入门到精通教程btcpool矿池源码分析环境搭建
热门文章
- 重装系统遇上reboot and select proper boot device ...问题解决方案
- 新工科建设形势下的计算机类专业人才培养方案
- mini6410 用fb显示bitmap
- 个人户口档案转移笔记(适用北京集体户口)
- 力扣第314周赛第三题
- Pytorch基本操作(5)——torchvision中的Dataset以及Dataloader
- 可供Office多种版本使用的无PIA或_VtblGap的加载外接程序
- 「论文翻译」Graph convolutional networks for computational drug development and discovery
- 漫说测试 | 研发虐我千百遍,我待bug如初恋
- CF1169C. Increasing by Modulo(二分)