21xrx.com
2025-07-04 08:26:52 Friday
文章检索 我的文章 写文章
C++函数如何返回两个值?
2023-07-08 05:56:20 深夜i     20     0
C++函数 返回两个值 返回值方法 多值返回 二元元组

在C++中,函数通常只能返回一个值。但有时候,在某些情况下需要从函数中返回两个或多个值。这时候我们可以使用以下几种方法:

1. 返回数组或结构体

我们可以将需要返回的值放到一个数组或结构体中,然后将该数组或结构体作为函数的返回值。这种方法被广泛地使用,因为它不仅可以返回多个值,而且还可以方便地处理多种类型的数据。示例如下:

#include <iostream>
using namespace std;
struct Pair // 定义一个结构体
 int value1; // 两个整数类型的数据成员
 int value2;
;
Pair getPair() { // 定义一个返回结构体的函数
 Pair p = 100; // 创建一个Pair类型的变量
 return p; // 返回该变量
}
int main() {
 Pair p = getPair(); // 调用函数并接收返回值
 cout << p.value1 << " " << p.value2 << endl; // 打印两个值
 return 0;
}

2. 使用指针或引用参数

除了返回数组或结构体之外,我们还可以将需要返回的值赋给指针或引用参数。这种方法的缺点是需要向函数中传递指针或引用参数,但是它具有操作原对象的能力,而且不会产生新的对象。示例如下:

#include <iostream>
using namespace std;
void getPair(int* x, int* y) { // 定义一个使用指针参数的函数
 *x = 100; // 赋值给x指向的整型变量
 *y = 200; // 赋值给y指向的整型变量
}
void getPair(int& x, int& y) // 定义一个使用引用参数的函数
 x = 100; // 赋值给x引用的整型变量
 y = 200; // 赋值给y引用的整型变量
int main() {
 int a, b;
 getPair(&a, &b); // 调用函数并传入指针参数
 cout << a << " " << b << endl;
 getPair(a, b); // 调用函数并传入引用参数
 cout << a << " " << b << endl;
 return 0;
}

无论使用哪种方法,都可以在C++中返回多个值。推荐使用第一种方法,因为它更加清晰、易于维护。

  
  

评论区

    相似文章