#include <iostream> #include <string> #include <windows.h> using namespace std; //方式一 使用指针 void swap1(int* a, int* b) { //指针作为函数的参数 int tmp = *a; *a = *b; *b = tmp; } //方式二 使用引用 void swap2(int& a, int& b) { //引用作为函数的参数 int tmp = a; a = b; b = tmp; } //下面两种方法都是在不使用第三个变量的情况下交换两个值 //方式三 void swap3(int& a, int& b) { //引用作为函数的参数 a = a ^ b; b = a ^ b; a = a ^ b; } //方式四 void swap4(int& a, int& b) { //引用作为函数的参数,这种方式若数值太大容易溢出,不太建议使用 a = a + b; b = a - b; a = a - b; } int main() { int x = 10; int y = 100; swap1(&x,&y); printf("第一次调用x:%d,y:%d\n", x, y); swap2(x,y); printf("第二次调用x:%d,y:%d\n", x, y); swap3(x,y); printf("第三次调用x:%d,y:%d\n", x, y); swap4(x, y); printf("第四次调用x:%d,y:%d\n", x, y); system("pause"); return 0; }