C语言怎么实现多个值输出?

C语言函数因历史原因及结构化编程理念通常只允许返回一个值,但可以通过指针、引用、返回元组(C++11的tuple)、返回字符串以及返回结构体等方式实现多值输出。传参数、返回元组、返回字符串和返回结构体是常见的解决方案,能够满足大多数场景的需求。
摘要由CSDN通过智能技术生成

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

C语言函数只能有一个输出,这是受当时编程方法的影响,是一个历史问题。在C语言发明前,大多数人还在用汇编语言的时候,编程效率底下,bug层出,维护困难。所以提出了一个革命性的思想,结构化程序设计,在这个思想下提出了编程函数化的理念,基于此出现了一系列的语言,C语言是其中一个发展最好的。

为何函数为何只有一个输出。其实都源于数学。数学的函数可以有多个变量,但只有一个结果。这其实是为了数学简单化。编程也是一样,这样的编程结果明确。所以现在函数式编程还是一个很火的理念。

但是,现实问题还是有很多不止一个输出结果的情况。好在c语言还留了一个后门。叫指针操作。通过指针操作你可以输出多个结果。这是C语言发展壮大的一个原因。也是现在C语言为人诟病的关键点。

现代编程语言大多抛弃了指针操作,但保留了多结果输出。不过函数式编程的理念也没有丢。也就是函数只有一个返回值,但这个返回值可以包含多个结果。

C语言的函数还真的只能有一个值返回,因为大部分情况下,我们不需要返回多个值,C语言规范中为了尽量避免程序设计的难度,就没有考虑函数的多个值的返回情况。即使有返回多个值的需求,也可以通过其它方式实现。

总结一下,大概有四种方式:

一. 传参数

通过指针或引用的方式可以在函数中改变传入参数的值。
例如在做两个数的交换时,如果用指针方式,如下:

void swap(int *a,int *b)
{
   
	
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值