值传递,指针(地址)传递,引用传递的不同与实现,代码如下:
#include<iostream>
using namespace std;
//1. 值传递
void mswap1(int a, int b) {
int temp = a;
a = b;
b = temp;
cout << "swap1 内部" << "a:" << a << " b:" << b << endl;
}
//2. 地址传递
void mswap2(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
cout << "swap2 内部" << "a:" << *a << " b:" << *b << endl;
}
//3. 引用传递
void mswap3(int& a, int& b) {
int temp = a;
a = b;
b = temp;
cout << "swap3 内部" << "a:" << a << " b:" << b << endl;
}
int main() {
int a = 10, b = 20;
int& c = a, & d = b;
mswap1(a, b);
cout << "swap1 " << "a:" << a << " b:" << b << endl;
cout << "--------------------" << endl;
mswap2(&a, &b);
cout << "swap2 " << "a:" << a << " b:" << b << endl;
cout << "--------------------" << endl;
mswap3(c, d);
cout << "swap3 " << "c:" << c << " d:" << d << endl;
system("pause");
return 0;
}
输出结果:
swap1 内部a:20 b:10
swap1 a:10 b:20
--------------------
swap2 内部a:20 b:10
swap2 a:20 b:10
--------------------
swap3 内部a:10 b:20
swap3 c:10 d:20
请按任意键继续. . .
自己创建的两个群,一个是做3D方面的(包括算法图像处理,以及三维模型生成等),另一个是代码编程群,两个群都是为了交流技术的,欢迎加入,禁止发广告。