|
发表于 2022-1-8 17:46:52
|
显示全部楼层
本帖最后由 傻眼貓咪 于 2022-1-8 17:53 编辑
因为 Python 万物皆对象,所以好象没有像 C 语言一样的指针概念。
- a = b = 13 # a 和 b 指向同样地址
- print(id(a), id(b)) # 打印地址
- a += 5 # 增幅 a 值
- print(a, b) # 打印 a 值和 b 值
- print(id(a), id(b)) # 发现 a 和 b 已经不同地址了,a 地址随着值而改变了,b地址不变
复制代码 如上,即使 a 已经赋值整数,之后还能变成字符串,布尔值,浮点数都可以(地址也一直改变),不像 C 语言,内存地址不变,而是值改变。
C 语言:- #include <stdio.h>
- int main()
- {
- int *a, b;
- a = &b;
- b = 13;
- printf("%p %p\n", a, &b);
-
- *a += 5;
- printf("%d %d\n", *a, b);
- printf("%p %p\n", a, &b);
-
- return 0;
- }
复制代码 |
|