C语言中的函数为什么只能有一个返回值输出?怎么实现多个值输出?

这是典型的C语言中函数模块中的返回值问题,算是常见的语法细节,很多人觉得C语言已经过时了,只能代表着这类人还不算是真正的技术人员,在嵌入式领域C语言依然充当着非常重要的角色,C语言在很多领域还是首选编程语言,主要在强调性能以及靠近硬件的编程中还是发挥着极其重要的作用,C语言常见的难点屈指可数,但组合起来使用难度会提升许多。

常见的C语言难点有指针,结构体,函数,递归,回调,数组等等,看起来没多少东西,每个概念都能延伸很多功能点,今天的题目其实就是函数模块中的返回值的问题,面向对象编程的基本单元就属于函数,函数包括参数输入,具体功能实现,最后是结果的输出,也就是这个题目的返回值,在正常情况下函数的返回值只有一个,但在实际编程中需要用到多个,在设计时候还是归结成一类,如果类型相近可以弄成数组方式,如果类型不太一致直接放在结构体中执行。

现在从语法规则出发列举几个实现多个值返回例子:

1.全局变量传递

这种方式算是最不科学的规范,打破了软件开发需要的闭环策略,但在基本语法上是支持的,C语言里面最好少涉猎全局变量,使用出错的风险会提升很多,真要想使用建议还是用静态全局变量直接在变量的前面加上static修饰符。

2.结构体指针返回

结构体是C语言涉及数据结构的最直接的容器,通常在编程过程中实现一个功能模块,模块中的数据通常都会放在一个结构体中,在在功能函数中对结构体中的数值进行操作,因为结构体中可以放足够多的变量,如果函数返回值是个指针的话,就能把整个结构体里面的内容返回出来,同样能够达到返回多个数值的作用,这种在平常的编程过程中用的最多,C语言中使用最频繁的关键点就是指针了,但也是很多初学者最不好理解的知识点。

C语言中如果掌握了结构体和指针基本上C语言将近一半的知识点就拿下了,当然直接返回结构体指针的方式属于非常常见的编程方式。

3.数组指针返回

指向数组的指针,既然是数组就可以在里面放入多个数值,同样可以起到返回多个数值的作用,其实这点和结构体指针效果差不多,只不过数值存放的位置不同。数组在C语言中用的也是非常多,数组在一定层面上其实和指针功能差不多,只不过在使用时候不如指针使用的灵活方便。

很多在刚开始学习C语言的初学者,因为项目经验不多,可能喜欢玩一些文字游戏,比如返回多个值的这样的题目,在实际项目中用的时候还是以实用为主,还要根据实际的情况,毕竟在实际项目中怎么去做选择的空间非常大,以稳定和实用为主。

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2019-04-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券