#include <stdio.h> void swap(int * p, int * q) { int tmp; tmp = *p; *p = *q; *q = tmp; } void swap1(int &p, int &q) { int tmp; tmp = p; p = q; q = tmp; } int main() { int a = 1, b = 2; /* 大家都见过,不多做解释 */ swap(&a,&b); printf("a = %d, b = %d\n",a,b); /* 引用方式交换数据,引用相当于一个别名, p和a变量指向同一个地址空间,修改同一个内存单元*/ swap1(a,b); printf("a = %d, b = %d\n",a,b); } /* 结果: a = 2, b = 1 a = 1, b = 2 */
原文:http://blog.csdn.net/cy_cai/article/details/38262333