下面的帕斯卡代码是什么意思?
p^.rlink=q
q^.llink=p
帕斯卡运算符^.
类似于->
C 和 C++ 中的运算符。
它取消引用指针(在您的情况下,p
应定义为var p: ^type
)并访问记录中的变量,在这种情况下,rlink
和llink
.
当插入符号 (^) 出现在指针变量之后时,它会取消对指针的引用,也就是说,它返回存储在指针所持有的内存地址中的值。因此,在您的情况下,我认为这p
是指向具有属性的记录的指针,rlink
并且q
是指向具有llink
属性的记录的指针。这些属性也是指向同一个结构的指针,因为p
然后q
被分配给它们。我想这个结构代表了一个带有左右节点的二叉树数据类型。
一种可能的可能性是 p 和 q 是双向链表中的元素,通常称为双向链表。这两个语句将它们连接在一起,p 在“左边”,q 在“右边”。C/C++ 中的等价物是:
p->rlink = q;
q->llink = p;
' ^
s 跟随一个指针,并.
访问一个记录的成员。所以这些线可能正在重新排列某种图表中的链接。
p 和 q 似乎是指针。它们指向分别具有(或可能同时具有)、rlink 和 llink(猜测右链接和左链接)的记录变量。
此代码段可能用于图形或链接列表的上下文中。
在 Pascal 中,插入符号 (^) 运算符是解引用运算符,它使人们能够访问变量内容而不是指针。
C语言中的直接等价物是
(p*).rlink=q
(q*).llink=p
但当然,这通常表示为
p->rlink=q
q->llink=p
使用 C 的 -> 运算符,它可以一步完成延迟和成员访问。