5

下面的帕斯卡代码是什么意思?

p^.rlink=q
q^.llink=p
4

5 回答 5

13

帕斯卡运算符^.类似于->C 和 C++ 中的运算符。

它取消引用指针(在您的情况下,p应定义为var p: ^type)并访问记录中的变量,在这种情况下,rlinkllink.

于 2009-11-29T07:45:26.350 回答
4

当插入符号 (^) 出现在指针变量之后时,它会取消对指针的引用,也就是说,它返回存储在指针所持有的内存地址中的值。因此,在您的情况下,我认为这p是指向具有属性的记录的指针,rlink并且q是指向具有llink属性的记录的指针。这些属性也是指向同一个结构的指针,因为p然后q被分配给它们。我想这个结构代表了一个带有左右节点的二叉树数据类型。

于 2009-11-29T07:42:25.407 回答
3

一种可能的可能性是 p 和 q 是双向链表中的元素,通常称为双向链表。这两个语句将它们连接在一起,p 在“左边”,q 在“右边”。C/C++ 中的等价物是:

p->rlink = q;
q->llink = p;
于 2009-11-29T07:50:51.767 回答
0

' ^s 跟随一个指针,并.访问一个记录的成员。所以这些线可能正在重新排列某种图表中的链接。

于 2009-11-29T07:43:15.340 回答
0

p 和 q 似乎是指针。它们指向分别具有(或可能同时具有)、rlink 和 llink(猜测右链接和左链接)的记录变量。

此代码段可能用于图形或链接列表的上下文中。

在 Pascal 中,插入符号 (^) 运算符是解引用运算符,它使人们能够访问变量内容而不是指针。

C语言中的直接等价物是

(p*).rlink=q
(q*).llink=p

但当然,这通常表示为

p->rlink=q
q->llink=p

使用 C 的 -> 运算符,它可以一步完成延迟和成员访问。

于 2009-11-29T07:45:32.630 回答