下面的Pascal代码是什么意思?
p^.rlink=q
q^.llink=p
答案 0 :(得分:10)
pascal运算符^.
类似于C和C ++中的运算符->
。
它取消引用指针(在您的情况下,p
应定义为var p: ^type
)并访问记录中的变量,在本例中为rlink
和llink
答案 1 :(得分:4)
当插入符号(^)出现在指针变量之后它会取消引用指针,也就是说,它返回存储在指针所保存的存储器地址中的值。因此,在您的情况下,我认为p
是指向具有rlink
属性的记录的指针,q
是指向具有llink
属性的记录的指针。这些属性也是指向同一结构的指针,因为p
和q
会分配给它们。我想这个结构代表了一个左右节点的二叉树数据类型。
答案 2 :(得分:3)
可能的可能性是p和q是doubly-linked list中的元素,通常称为双向链表。这两个语句将它们连接在一起,p在“left”上,q在“right”上。 C / C ++中的等价物是:
p->rlink = q;
q->llink = p;
答案 3 :(得分:0)
^
跟随指针,.
访问记录的成员。因此,这些行可能会重新排列某种graph中的链接。
答案 4 :(得分:0)
此代码段可能在图表的上下文中使用,也可能是各种链接列表。
Pascal中的插入符号(^)是取消引用操作符,它使人们能够访问变量内容而不是指针。
C语言中的直接等价词是
(p*).rlink=q
(q*).llink=p
但当然这通常表示为
p->rlink=q
q->llink=p
用C的 - >运营商,可以一步完成引用和成员访问。