这个问题将从N1570草案中获取信息,因此基本上是C11。

通俗地说,取消引用指针意味着将一元*运算符应用于指针。草案中只有一个地方存在“取消引用”一词(没有“取消引用”的实例),并在脚注中:



据我所知,一元*运算符实际上称为“间接运算符”,如第6.5.3.2节所示:



类似地,在附件§J.2中将其显式地称为间接操作符:



因此,在C语言中谈论“取消引用指针”是正确的,还是过于ped腐?术语从何而来? (由于6.5.2.1节的原因,我可以在[]上传递一个称为“deferencing”的内容)

最佳答案

K&R v1

如果看第一版(1978年)中的C编程语言,则使用术语“间接”。

例子







它也列在INDEX中,例如



摘录自第5.1节



K&R v2

在第二版中,引入了“取消引用”一词。



先前的用法

然而,该术语(例如,“很多”)较老,例如可以在例如“A.S.A.”中看到。

A survey of some issues concerning abstract data types,1974年。例如pp24/25。在与ALGOL 68,PASCAL和SIMULA 67的连接中进行了说明。



压印

还有其他一些用法示例。确切地说,是在什么地方,什么时候创造的(至少现在还没有)。 (1974年的论文至少很有趣。)

有趣的是,查看诸如net.unix-wizards之类的邮件列表通常也很有用。一个example from Peter Lamb at Melbourne Uni(11/28/83):



Ed1。添加

没有提及“取消引用”,但仍然; Ritchie是一个有趣的读物:The Development of the C Language ✝

在这里,术语“间接”也被一贯使用-但是/和/等等。语言之间的联系有些详细。因此,考虑到例如,该术语的使用是有趣的。像上面提到的1974年这样的论文。

作为关于概念的间接寻址和语法的​​示例,请阅读例如pp 12ev。



在此方面,还可能值得一提的是ANSI C89,并提及如下内容:


  • Draft ANSI C Standard (ANSI X3J11/88-090),(由Wikipedia提供)
  • Rationale for American National Standard for Information Systems – Programming Language – C



  • (我现在必须重新阅读其中一些文件。)

    关于c - "dereferencing"这个词是哪里来的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27445255/

    10-11 23:17