📅  最后修改于: 2023-12-03 15:08:14.984000             🧑  作者: Mango
在 C 和 C++ 中,有时我们需要从函数中返回多个值,而不是只返回一个值。有几种方式可以实现这一点,让我们一一了解它们。
我们可以通过指针参数将多个值返回给调用方。例如,以下代码演示如何将两个整数从函数中返回:
void get_values(int *a, int *b) {
*a = 10;
*b = 20;
}
int main() {
int x, y;
get_values(&x, &y);
printf("x = %d, y = %d\n", x, y); // Output: x = 10, y = 20
return 0;
}
注意,在上述示例中,访问这两个整数的方法是使用指针。指针参数应该总是使用指针访问它们所指向的值。
我们可以使用结构体从函数中返回多个值。这是一种比使用指针更好的方法,因为它允许我们在一个结构体中组织所有返回值。
以下代码演示如何使用结构体将两个整数从函数中返回:
struct values {
int x;
int y;
};
struct values get_values() {
struct values v = {10, 20};
return v;
}
int main() {
struct values result = get_values();
printf("x = %d, y = %d\n", result.x, result.y); // Output: x = 10, y = 20
return 0;
}
在上面的示例中,结构体的字段 x
和 y
存储了返回的整数。
我们还可以使用数组从函数中返回多个值。以下代码演示如何将两个整数从函数中返回:
void get_values(int values[]) {
values[0] = 10;
values[1] = 20;
}
int main() {
int result[2];
get_values(result);
printf("x = %d, y = %d\n", result[0], result[1]); // Output: x = 10, y = 20
return 0;
}
在上面的示例中,函数 get_values
接受一个整数数组,并将两个整数存储在该数组中。
以上就是在 C 或 C++ 中从函数中返回多个值的几种方法。每种方法都有其优缺点,具体使用哪一种取决于情况。