指针值传递与地址传递的实现示例代码
时间: 2024-05-20 08:07:41 浏览: 11
指针值传递和地址传递是C/C++中常用的两种参数传递方式。下面是它们的实现示例代码:
1. 指针值传递示例代码:
```c++
#include <iostream>
void changeValue(int* ptr) {
*ptr = 10;
}
int main() {
int num = 5;
std::cout << "Before change: " << num << std::endl;
changeValue(&num);
std::cout << "After change: " << num << std::endl;
return 0;
}
```
在这个示例中,我们定义了一个函数`changeValue`,它接受一个指向整数的指针作为参数。在函数内部,我们通过解引用指针来修改指针所指向的值。在`main`函数中,我们声明了一个整数变量`num`,并将其地址传递给`changeValue`函数。通过指针值传递,我们可以在函数内部修改`num`的值,并在函数外部得到修改后的结果。
2. 地址传递示例代码:
```c++
#include <iostream>
void swap(int& a, int& b) {
int temp = a;
a = b;
b = temp;
}
int main() {
int num1 = 5;
int num2 = 10;
std::cout << "Before swap: num1 = " << num1 << ", num2 = " << num2 << std::endl;
swap(num1, num2);
std::cout << "After swap: num1 = " << num1 << ", num2 = " << num2 << std::endl;
return 0;
}
```
在这个示例中,我们定义了一个函数`swap`,它接受两个整数的引用作为参数。在函数内部,我们通过引用来直接操作传入的变量,实现了两个变量的交换。在`main`函数中,我们声明了两个整数变量`num1`和`num2`,并将它们作为参数传递给`swap`函数。通过地址传递,我们可以在函数内部直接修改原始变量的值。