1. 程式人生 > >【C++】經典的交換兩個數

【C++】經典的交換兩個數

#include <iostream>
using namespace std;
//錯誤,因為a,b都是指向地址的副本,函式結束之後,a,b就被刪除了
void myswap4(int *a, int *b)
{
	int * temp = a;
	cout<<"形參a"<<&a;
	a = b;
	b = temp;
}

void myswap3(int *a, int *b)
{
	int temp = *a;
	*a = *b;
	*b = temp;
}
void myswap2(int &a, int &b)
{
	int temp = b;
	b = a;
	a = temp;
}
//這是不使用第三個變數的交換,兩個數。但是交換的仍是副本
void myswap(int a, int b)
{
	a = a^b;
	b = a^b;
	a = a^b;

}

void main()
{
	int a = 4;
	int b = 5;
	cout <<"a address"<< &a;
	myswap4(&a, &b);

	getchar();
}