我想理解一下"12 Dereferencing pointers" of Rust教程中的以下代码片段的含义:
let point = &@~Point { x: 10f, y: 20f };
println(fmt!("%f", point.x));特别是@~是什么意思?
发布于 2013-09-13 14:22:54
它只是多个指针获取运算符的应用程序。你可以用大括号把它看得更清楚(虽然我不知道它是否是有效的Rust代码):
&(@(~Point { x: 10f, y: 20f }))这实际上是一个指向托管框的借用指针,其中包含指向结构的唯一指针。
当然,这样的东西在真实的代码中是无用的,但它演示了取消引用的概念。
发布于 2013-09-17 03:20:32
该表达式是对托管指针的引用,该托管指针指向指向Point的所属指针。
上面的句子给出了一个很好的提示:
您可以编写一个表达式,自动取消对任意数量的指针的引用。例如,如果你觉得有倾向性,你可以写一些愚蠢的东西,比如
它只是为了证明你可以有一个指向某物的指针。这段代码当然是愚蠢的,因为这段代码没有很好地利用这个概念,它只是为了展示语法。
有关指针的更多信息,您可能会喜欢这个问题:How do pointer to pointers work in C?
https://stackoverflow.com/questions/18776499
复制相似问题