如何不用指针改变多个实参的值
时间: 2023-07-20 13:43:30 浏览: 86
不用第三方变量交换两数的值
5星 · 资源好评率100%
如果不使用指针,可以使用传递结构体或类的方式来改变多个实参的值。
例如,在 C 语言中,可以定义一个结构体,将需要改变的多个变量作为结构体的成员变量,然后将结构体作为函数的参数传递,函数内部修改结构体的成员变量即可改变多个实参的值。示例如下:
```c
#include <stdio.h>
struct Data {
int a;
int b;
int c;
};
void changeData(struct Data* data) {
data->a = 10;
data->b = 20;
data->c = 30;
}
int main() {
struct Data data = {1, 2, 3};
printf("Before change: a=%d, b=%d, c=%d\n", data.a, data.b, data.c);
changeData(&data);
printf("After change: a=%d, b=%d, c=%d\n", data.a, data.b, data.c);
return 0;
}
```
在 C++ 中,可以定义一个类,将需要改变的多个变量作为类的成员变量,然后将类的实例作为函数的参数传递,函数内部修改类的成员变量即可改变多个实参的值。示例如下:
```cpp
#include <iostream>
class Data {
public:
int a;
int b;
int c;
};
void changeData(Data& data) {
data.a = 10;
data.b = 20;
data.c = 30;
}
int main() {
Data data = {1, 2, 3};
std::cout << "Before change: a=" << data.a << ", b=" << data.b << ", c=" << data.c << std::endl;
changeData(data);
std::cout << "After change: a=" << data.a << ", b=" << data.b << ", c=" << data.c << std::endl;
return 0;
}
```
阅读全文