在C++中,你不能直接从外部函数直接交换main
函数中的两个变量的值,因为main
函数中的局部变量在作用域之外是不可见的。但是,有几种方法可以实现类似的功能:
一.通过引用传递交换
#include <iostream>
using namespace std;
// 通过引用交换两个变量的值
void swapValues(int& a, int& b) {
int temp = a;
a = b;
b = temp;
}
int main() {
int x = 5;
int y = 10;
cout << "Before swap: x = " << x << ", y = " << y << endl;
// 调用外部函数,通过引用传递变量
swapValues(x, y);
cout << "After swap: x = " << x << ", y = " << y << endl;
return 0;
}
此处通过&操作符引用
二.通过指针传递交换
&取地址符来传递变量指针
#include <iostream>
// 通过指针交换两个变量的值
void swapValues(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int x = 5;
int y = 10;
cout << "Before swap: x = " << x << ", y = " << y << endl;
// 调用外部函数,通过指针传递变量地址
swapValues(&x, &y);
scout << "After swap: x = " << x << ", y = " << y << endl;
return 0;
}