c语言中在一个自定义函数中怎么返回两个值?

如题所述

方法一:设置全局变量,这样在形参中改变全局变量,在实参中也会有效。所以可以在形参中改变多个全局变量的值,那么在实参中就相当于返回多个值。
方法二:如果用数组名作为形参,那么改变数组内容,比如排序,或者进行加减运算,回到实参时依然是有效的。这样也会返回一组值。
方法三:可以利用指针变量,这个原理和方法二是一样的,因为数组名本身就是数组首元素的地址。就不多说了。 用结构体封装不同类型数据,或者用数组表示同类型数据,然后返回结构体指针或者数组名,本质都是用指针来返回多个参数
方法四:如果学过C++,可以引用参数
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-27
传入指针参数

比如

int fun(int * p1, int * p2);

调用时,

int a, b;
fun(&a, &b);

在fun中修改p1,p2指针对应的变量,a, b的值就会改变追问

再问一下;怎么输出啊!用return吗?怎么用啊!

追答

假设:

int fun(int * p1, int * p2)

{
p1 = 2;

p2 = 3;

}

调用时:

int a, b;
fun(&a, &b);
printf("a=%d,b=%d\n", a, b);

输出结果就是

a=2,b=3

本回答被提问者和网友采纳
相似回答