把参数的实际值复制给函数的形式参数,修改函数内的形式参数对实际参数没有影响。
#include <iostream>
using namespace std;
void swap1(int a, int b) {
int temp = a;
a = b;
b = temp;
}
int main() {
int a = 10, b = 20;
cout << a << " " << b << endl; // 10 20
swap1(a, b);
cout << a << " " << b << endl; // 10 20
return 0;
}
把参数的地址复制给形式参数,修改形式参数会影响实际参数。
#include <iostream>
using namespace std;
void swap1(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int a = 10, b = 20;
cout << a << " " << b << endl; // 10 20
swap1(&a, &b);
cout << a << " " << b << endl; // 20 10
return 0;
}
把参数的引用复制给形式参数,修改形式参数会影响实际参数。
#include <iostream>
using namespace std;
void swap1(int& a, int& b) {
int temp = a;
a = b;
b = temp;
}
int main() {
int a = 10, b = 20;
cout << a << " " << b << endl; // 10 20
swap1(a, b);
cout << a << " " << b << endl; // 20 10
return 0;
}