#include<iostream>
using namespace std;
// 指针和函数
// 1、值传递
void swap01(int a, int b)
{
int temp = a;
a = b;
b = temp;
cout << "swap01 a = " << a << endl;
cout << "swap01 b = " << b << endl;
}
// 2、地址传递
void swap02(int* p1, int* p2)
{
int temp = *p1;
*p1 = *p2;
*p2 = temp;
}
//
//
int main()
{
int a = 10;
int b = 20;
swap01(a, b); //值传递。不修改实参值。
cout << "a = " << a << endl;
cout << "b = " << b << endl;
swap02(&a, &b); // 如果是地址传递,可以修改实参。
cout << "a = " << a << endl;
cout << "b = " << b << endl;
system("pause");
return 0;
}
值传递:不修改实参的值。
地址传递:可以修改实参的值。
本文详细解析了C++中值传递和地址传递的区别,通过示例展示了如何在`swap01`和`swap02`函数中分别实现,并说明了它们对实参值的影响。重点讲解了值传递不改变实参值,而地址传递能修改实参的实际内存地址。
2693

被折叠的 条评论
为什么被折叠?



