在c语言中,
int a=1;
int b=a;
此时a与b占用的是两个内存单元,a与b数值的改变互不影响。
在python中,
a=1
b=a
print('a:',id(a),'b',id(b))
a=2
print(b)
print('a:',id(a),'b',id(b))
输出:
a: 94517420069920 b 94517420069920
1
a: 94517420069952 b 94517420069920
可见开始时,a与b占用相同的内存空间,a的数值改变,是改变了a所指向的内存单元,b并没有改变。
所以,python中的赋值,是让a与b指向同一地址,即同一内存单元。而不是为b新开辟一块内存空间,这一点和c不一样。
看这张图能明白一些: