跨语言学习之C++ 和 Python 的赋值操作 (等号“=“) 的区别
C++ 和 Python 的赋值操作(等号 =
)在底层机制和表现行为上有显著区别,主要体现在变量与对象的关系、内存管理和对象类型等方面。以下是两者的详细对比:
1. 变量与对象的关系
-
Python:
- 变量是对象的引用,赋值操作是将变量指向某个对象的内存地址。
- 多个变量可以指向同一个对象。
- 示例:
a = [1, 2, 3] b = a # b 和 a 指向同一个列表对象 b.append(4) print(a) # 输出: [1, 2, 3, 4]
-
C++:
- 变量是对象的实例,赋值操作是将对象的值复制给另一个变量(默认是值拷贝)。
- 每个变量都有自己的内存空间,修改一个变量不会影响另一个变量。
- 示例:
std::vector<int> a = { 1, 2, 3}; std::vector<int> b = a; // b 是 a 的副本 b.push_back(4); // a 仍然是 [1, 2, 3],b 是 [1, 2, 3, 4]
2. 内存管理
-
Python:
- 使用垃圾回收机制自动管理内