这个问题将从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,并提及如下内容:
(我现在必须重新阅读其中一些文件。)
关于c - "dereferencing"这个词是哪里来的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27445255/