为啥取消引用称为取消引用的指针?

Posted

技术标签:

【中文标题】为啥取消引用称为取消引用的指针?【英文标题】:Why is dereferencing a pointer called dereferencing?为什么取消引用称为取消引用的指针? 【发布时间】:2011-02-24 08:09:02 【问题描述】:

为什么解引用称为解引用?

我只是在正确地学习指针,我想知道为什么取消引用被称为。这让我感到困惑,因为听起来您正在删除引用,而不是通过指向目标的指针。

谁能解释一下为什么叫这个?

对我来说,像destination 或pointed_to_value 这样的东西会更有意义。

【问题讨论】:

Destination 和指向的值是名词......你问的是标题中的动词。 :-) 我同意 - 为什么它被称为对我来说从来没有任何意义。如果它被称为“跟随”或类似的,我会更喜欢它。 我认为您指的是我正在寻找的正确方向。取消引用这个词是纯粹的 CS 术语吗?除此之外,在我的生活中没有使用这个词,我试图假设它是什么,我认为这就是我出错的地方!它是只用于这种情况的词吗?是否还有其他使用该术语的示例? 为了混淆视听,Windows内核使用“dereference”来表示“减少引用计数”:msdn.microsoft.com/en-us/library/ff557724%28VS.85%29.aspx @PlatinumAzure getting 还是觉得更适合我 【参考方案1】:

指针引用一个对象。因此,我们取消引用指针(或者,获取指针的所指对象)以获取指向的对象。

de-前缀很可能来自拉丁介词,意思是来自;我想您可以将 dereference 理解为“从引用中获取所指对象(或对象)。”

【讨论】:

你能举出这个词在 CS 之外使用的其他例子吗? @optician:不;我认为这只是技术术语。 完美,关于拉丁文的那部分正是我想要的!谢谢。 我知道这已经很晚了,但“定界”的意思是表示限制或边界,而不是取消限制;其他示例包括“表示”、“划定”、“划定”等。【参考方案2】:

取消引用意味着删除引用并为您提供它实际引用的内容。

指向something 的指针实际上意味着您的指针变量拥有something 的内存地址。但也可以将指针视为对something 的引用。

【讨论】:

它是纯粹的cs术语,还是你能想到另一种情况,你会用同一个词? 有数千个 CS 术语在“现实世界”中没有使用 听起来它与使指针为空有关,而不是在它的末尾找到一些东西。我想我是这么想的,因为我认为它听起来像是一个可以存在于现实世界中的词。【参考方案3】:

维基词典只包含与编程相关的定义:http://en.wiktionary.org/wiki/dereference

所以看起来它真的只是技术术语。

【讨论】:

以上是关于为啥取消引用称为取消引用的指针?的主要内容,如果未能解决你的问题,请参考以下文章

为啥要使用 void 指针来取消引用数据类型的变量?

为啥这个不允许编译器执行的示例会导致使用 cmov 取消引用空指针?

为啥 gorm db.First() 会因“无效的内存地址或 nil 指针取消引用”而恐慌? [复制]

为啥 uint8_t 在分配给取消引用的 uint32_t 指针时使用了 4 个字节?

为啥 Rust 不在匹配模式中执行隐式取消引用强制?

有没有办法访问/取消引用并查找存储在双指针向量中的元素的值? [关闭]