*形式的swap函数:
1 #include<stdio.h> 2 void swap(int *d1, int *d2) { 3 int t; 4 t = *d1; 5 *d1 = *d2; 6 *d2 = t; 7 printf("After swap a=%d b=%d ", *d1, *d2); 8 } 9 int main() { 10 int d1 = 1, d2 = 2; 11 printf("Before swap a=%d b=%d ", d1,d2); 12 swap(&d1,&d2); 13 return 0; 14 }
运行结果:
引用形式的swap函数
1 #include<stdio.h> 2 void swap(int &d1, int &d2) { 3 int t; 4 t = d1; 5 d1 = d2; 6 d2 = t; 7 printf("After swap a=%d b=%d ", d1, d2); 8 } 9 int main() { 10 int d1 = 1, d2 = 2; 11 printf("Before swap a=%d b=%d ", d1,d2); 12 swap(d1,d2); 13 return 0; 14 }
运行结果:
*d1这种是取得地址,当交换二个数时,他们的值不会变。&d1是引用型,只有数据的使用权,而不能改变数据。