C语言中函数调用怎么返回两个值

C语言中函数调用怎么返回两个值,第1张

在C语言中,函数只能返回一个值,要返回两个值,可以改换思路,通过其它方式做到。
1 建立数组,返回指针。
在要返回的两个值类型相同时,可以用创建数组的方式,将要返回的值存在数组中,并返回数组首地址,这样就可以实现返回两个值的效果。
需要注意的是,要返回数组首地址,那么返回的值不可以是局部变量,有如下几种是可以的:
a) 使用静态局部变量存储,并返回地址;
b) 使用全局变量存储,返回地址;
c) 函数中动态分配内存,并返回申请到的地址,此种方法需要注意,在使用后需要释放;
d) 在参数中传入数组地址,并返回。即返回的实际上是主调函数中的变量地址。
2 建立结构体,返回结构体变量。
将需要返回的值,写成结构体形式,并返回结构体变量,这样可以实现一个返回值中含有多组数据。
3 当数据规模较小时,可以采用将小规模数据合并为大规模数据的方式,进行返回。
比如,需要返回两个char型数据时,可以通过返回一个short数据,高地位分别存储各自的值。
除以上方法外,还可以不使用返回值的方式,而是通过函数参数传值,或者全局变量传值等方式,将要返回的值回传给主调函数。

return是个好东西,第一个作用,也就是他的真实作用:返回值,这个返回值是和 函数 的类型有关的, 函数 的类型是什么,他的返回值就是什么。

比方主 函数 int main()

{}这里就必须有一个return,只有void时可以不用返回值。

功能函数

int fun()

{

return 1;

}

这个时候fun函数的作用就是返回一个int 类型的值,可以直接拿来用比方int a=fun();

这里就相当于int a=1;

另外一个作用return后面的语句不会执行,我们可以用它来结束程序

比方找出三个数种最大的一个数

void main

{

int a,b,c;

if(a>b)

if(b>c)

{

return printf("最大值为%d",a);

}



}

在这里if(b>c)

我们就可以直接得出a是最大了,就没必要执行下面的语句了,return治理就起到了终止语句的作用了

等用得多了还会有些妙用的,你要自己慢慢体会

在函数中可以使用 return 来设置函数的返回值,return 后面的值将会作为函数的执行结果返回,可以定义一个变量来接收函数的返回值。return 后面的值可以是任意类型,对象或函数等都可以作为返回值。

function sum (a,b,c){

var total = a+b+c;

return total;  //将一个基本类型变量作为返回值

}

var result = sum(4,7,8);

consolelog(result);

//输出19

代码中的 total 作为 sum 函数的执行结果返回,变量 result 接受 sum 函数的返回值,函数返回什么 result 就是什么。

扩展资料

返回值是一个函数的处理结果,如果需要在程序中拿到函数的处理结果做进一步的处理,则需要函数必须有返回值。函数的返回值用return去定义。

注意:

1、return是一个函数结束的标志,函数内可以有多个return, 但只要执行一次,整个函数就会结束运行 ;

2、return 的返回值无类型限制,即可以是任意数据类型;

3、return 的返回值无个数限制,即可以用逗号分隔开多个任意类型的值 0个:返回None,ps:不写return默认会在函数的最后一行添加return None 1个,返回的值就是该值本身 多个:返回值是元组。

参考资料来源:

百度百科——返回值

给你写了个例子,fun函数用于为字符串开辟空间,然后返回字符串的指针
#include
#include
char

fun(int
n)
{
return
(char
)malloc(n);
}
void
main()
{
char
ray;
int
i;
ray
=
fun(5);
for
(i
=
0;
i
<
4;
++i)
{
ray[i]
=
65+i;
}
ray[4]

return 返回值;
这通常可以有两种作用:
一是直接返回计算所得到的答案。
例如:下面的函数返回两个整数的和:
int sum(inr a,int b)
{return a+b;
}
二是函数中已经处理或保存了所有的答案,通过函数值可以返回本次调用处理的状态代码:例如,一般正常返回0,以及常见出错的代码(预先约定)。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12663642.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存