一个函数可以有两个返回值么

C++

一个函数可以有两个返回值么:
虽然RETURN只能返回一个值
但是没有对这个值有类型要求
返回个数组是可以的。数组里的元素有两个就相当于返回两个值
还可以返回结构体,实现不同类型的返回值
这样就实现了一个函数返两个值。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-12-03
照语言的规定是不可以.
若遇到这种需求, 有三种处理法.
举例来说: 假设函数 quo_rem接收整数a, b, 想传回商数a/b 及馀数a%b.
处理法1:
int* quo_rem(int a, int b) {
int* ans=new int[2]; ans[0]=a/b; ans[1]=a%b; return ans;
}
void main() {
int *qr=quo_rem(8,3);
cout << "quotions: " << qr[0] << ", remainder: " << qr[1];
delete[] qr;
}

处理法2:
class Pair { public: int x, int y; }
Pair quo_rem(int a, int b) {
Pair ans; ans.x=a/b; ans.y=a%b; return ans;
}
void main() {
Pair qr=quo_rem(8,3);
cout << "quotions: " << qr.x << ", remainder: " << qr.y;
}

处理法3:
void quo_rem(int a, int b, int&quo, int& rem) {
quo=a/b; rem=a%b;
}
void main() {
int q, r;
quo_rem(8, 3, q, r);
cout << "quotions: " << q << ", remainder: " << r;
}本回答被网友采纳
第2个回答  2012-07-07
自定义函数的返回值只能有1个呢!
如果想得到多个返回值的话,可以定义数组,然后用针传递参数,循环赋值再循环输出就可以了呢!
第3个回答  2012-07-07
返回值只能是1个,如果想得到两个返回值的话,可以使用指针传递参数,函数内部修改指针所指向变量的值即可!
第4个回答  2012-07-09
1个函数返回值只能是1个,如果想得到两个返回值的话,可以使用指针传递参数
相似回答