以下是我的四条代码:
# CELL-1: Node definition
class Node(object):
def __init__(self,val):
self.val = val
self.next = None
# CELL-2
cur = dummy = Node(7)
dummy.next = Node(5)
print cur, dummy
print cur.next.val
# CELL-3
cur = dummy = Node(7)
cur.next = Node(5)
print cur.next.val, dummy.next.val
print cur, dummy
# CELL-4
cur = Node(7)
dummy = Node(7)
dummy.next = Node(5)
print cur, dummy
print cur.next.val及其产出

我对以下三个问题感到困惑:
cur是物理地址吗?或者逻辑地址?或者只是一个可变的名字?还有假人?cur是否具有与dummy相同的物理地址,或者换句话说,为什么cur会随着dummy的变化而变化?发布于 2019-03-22 06:54:15
我会尽量简单地解释。
A1:cur是一个变量名,它指向内存中的对象Node。dummy也是如此,它是一个指向内存中的对象的指针。
A2:由于您正在执行cur = dummy = Node(7),所以您将内存中相同的对象分配给这两个变量。因此,当它发生变化时,指向它的两个变量都会注意到这个变化。但是,由于您在步骤4中声明了两个Node对象并将它们分配给不同的变量,它们将独立地进行更改。
A3:这是驱动器上的物理内存位置。
https://stackoverflow.com/questions/55294055
复制相似问题