/*按地址传递*/ #include <iostream> using namespace std; void swap(int *a, int *b) { int c; c = *a; *a = *b; *b = c; } int main() { int a = 3, b = 4; cout << "交换前" << "a: " << a << " b: " << b << endl; swap(&a, &b); // 按地址传递 cout << "交换后" << "a: " << a << " b: " << b << endl; return 0; }
按别名传递
/*按别名传递*/ /*我们可以将a和b的别名传递到swap函数中,将swap函数的接收参数改为接收两个别名,调用时候将a和b传递进去即可, 这样参数a和b就变成了主函数中的a和b的别名,由于别名即自身,所以对别名的操作即是对main函数的a和b的操作, 或者说参数a和b即main函数中的a和b*/ #include <iostream> using namespace std; void swap(int &a, int &b) { int c; c = a; a = b; b = c; } int main() { int a = 3, b = 4; cout << "交换前" << "a: " << a << " b: " << b << endl; swap(a, b); cout << "交换后" << "a: " << a << " b: " << b << endl; return 0; }
原文:http://www.cnblogs.com/rain-1/p/4853384.html