这个问题将从草案N1570中提取信息,因此基本上是 C11。
通俗地说,取消引用指针意味着将一元运算*
符应用于指针。文件草案中只有一处出现“取消引用”一词(没有“取消引用”的实例),它在脚注中:
102) [……]
一元运算符取消引用指针的无效值包括
*
空指针、与指向的对象类型不恰当对齐的地址以及对象在其生命周期结束后的地址
据我所知,一元运算*
符实际上被称为“间接运算符”,如 §6.5.3.2 所示:
6.5.3.2 地址和间接运算符
4
一元运算*
符表示间接。[...]
类似地,它在附件 §J.2 中被明确称为间接运算符:
— 对象的值由数组下标
[]
、成员访问.
或−>
、地址&
或间接*
运算符或创建地址常量时的指针转换访问(6.6)。
那么在 C 中谈论“取消引用指针”是否正确,或者这是否过于迂腐?术语从何而来?[]
(由于第 6.5.2.1 节,我可以说被称为“尊重”)