我需要将一些FreePascal代码移植到C语言上。虽然我是专业的C开发人员,但对Pascal一窍不通。大部分代码可以很容易地移植,但有一行让我头疼。请问这行代码究竟是做什么用的:
New(newBack);
curBackPtr^ := newBack;
curBackPtr := @(newBack^.next);
这里让我困惑的是,
newBack
被分配给了curBackPtr
,然后紧接着newBack.next
又被分配给了curBackPtr
,而curBackPtr
从未被访问过。那么第一个赋值不就是多余的,可以安全地删除吗?或者我有什么地方理解错误了吗?
foo^
就像 C 语言中的*foo
,而@(foo)
就像 C 语言中的&foo
,这有帮助吗? - Russell Zahniser