在函数参数中传入func(int & i) ,在内部改变参数值,外部也会改变,因为传入的是地址
如果传入的是值func(int i),在函数内部改变时,外部不会改变,因为传入时进行了复制,并不改变之前值
测试1 传入值
#include <iostream>
using namespace std;
void func(int i){
cout << i << endl;
i = 20;
}
int main(int argc, char const *argv[])
{
int a = 10;
func(a);
cout << a << endl;
return 0;
}
输出结果:
caros@computing:~/work/work/test/c/test/modern/test_param_pointer$ g++ -o main main.cpp -std=c++11
caros@computing:~/work/work/test/c/test/modern/test_param_pointer$ ./main
10
10```
## 测试2 传入引用
```cpp
#include <iostream>
using namespace std;
void func(int& i){
cout << i << endl;
i = 20;
}
int main(int argc, char const *argv[])
{
int a = 10;
func(a);
cout << a << endl;
return 0;
}
输出结果:
caros@computing:~/work/work/test/c/test/modern/test_param_pointer$ ./main
10
20```