C++基础学习之利用swap函数验证*和&的用法

*形式的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是引用型,只有数据的使用权,而不能改变数据。

原文地址:https://www.cnblogs.com/geyuezgh/p/12789226.html