+17 投票
分类:Python编程与实践 | 用户: (570 分)
课堂中有说 blist=alist 则有id(alist)=id(blist) 那如果改变alist后blist会有改变吗?为什么可以同一个地址存储两个变量呢...

3 个回答

+4 投票
用户: (3.4k 分)
会改变的,就像是C++的别称一样就是用了另一个名字而已
+2 投票
用户: (5.8k 分)
可变元素的话是会改变的,这里跟C++的数组是一个道理。不是一个地址存储两个变量,而是两个名字指向了同一块地址。
用户: (570 分)
谢谢啦 上课老师有讲 是我问得着急了
+2 投票
用户: (3.1k 分)
在C语言中,系统会为每个变量分配内存空间,当改变变量的值时,改变的是内存空间中的值,变量的地址是不改变的。

而在python中,Python采用的是基于值的管理方式。

当给变量赋值时,系统会为这个值分配内存空间,然后让这个变量指向这个值;当改变变量的值时,系统会为这个新的值分配另一个内存空间,然后还是让这个变量指向这个新值。

也就是说,C语言中变量变的是内存空间中的值,不变的是地址;而在Python中,变量变的是地址,不变的是内存空间中的值。
欢迎来到 爱可可Q&A ,有什么问题可以尽管在这里提问,你将会收到其他成员的热心回答。
...