下面的两个例子都可以达到数据交换的目的,前者是引用,后者是指针。
#define COUT_ENDL(str) std::cout << #str << " is " << (str) << std::endl;
void swap(int &a, int &b)
{
int temp = a;
a = b;
b = temp;
}
void swap(int *pa, int *pb)
{
int temp = *pa;
*pa = *pb;
*pb = temp;
}
int main()
{
int a = 1, b = 2;
swap(a, b);
COUT_ENDL(a)
COUT_ENDL(b)
a = 1, b = 2;
swap(&a, &b);
COUT_ENDL(a)
COUT_ENDL(b)
return 0;
}