值传递还是引用传递

值传递还是引用传递,这个问题一度让我很困惑,常用的语言有 C/C++ 和 python ,但是他们的参数传递机制是很不一样的。这篇博文就简单说一下我自己的了解。

问题

先来比较一段代码

python

1
2
3
4
5
a = 1
print id(a)
def (b):
print id(b)
func(a)

C/C++

1
2
3
4
5
6
7
8
9
10
11
using namespace std;
void printAddress(int b){
cout << "The address is " << &b << endl;
}
int main() {
int a = 1;
cout << "The address is " << &a << endl;
printAddress(a);
return 0;
}