c++值传递和地址传递
时间: 2023-12-07 18:04:23 浏览: 78
数据结构函数的参数传递
C++中的参数传递方式有两种:值传递和地址传递。
1. 值传递:将实参的值复制一份传递给形参,函数内部对形参的修改不会影响到实参的值。
下面是一个例子,演示了值传递的过程:
```c++
#include <iostream>
using namespace std;
void changeNumber(int x);
int main() {
int a = 10;
cout << "a = " << a << endl;
changeNumber(a);
cout << "Now a = " << a << endl;
return 0;
}
void changeNumber(int x) {
x = x + 5;
}
```
输出结果为:
```
a = 10
Now a = 10
```
可以看到,虽然在`changeNumber`函数中修改了形参`x`的值,但是并没有影响到实参`a`的值。
2. 地址传递:将实参的地址传递给形参,函数内部对形参的修改会影响到实参的值。
下面是一个例子,演示了地址传递的过程:
```c++
#include <iostream>
using namespace std;
void changeNumber(int *x);
int main() {
int a = 10;
cout << "a = " << a << endl;
changeNumber(&a);
cout << "Now a = " << a << endl;
return 0;
}
void changeNumber(int *x) {
*x = *x + 5;
}
```
输出结果为:
```
a = 10
Now a = 15
```
可以看到,通过地址传递,`changeNumber`函数内部对形参`x`的修改成功地影响到了实参`a`的值。
阅读全文