C ++的箭头(->)运算符的正式名称是什么?
我总是称其为“箭头运算符”,但我确信它具有正式名称。 我很快浏览了C ++标准,却没有看到它的名字。
C ++标准只是将其称为“箭头”(第5.2.5节)。
Bjarne Stroustrup将其称为“结构指针取消引用”运算符(TC ++ PL特别版,第102页)。 他在索引中将其称为“成员访问”运算符。
不确定这是否是“官方的”,但毕竟那家伙确实写了这种语言。
该操作员的正式名称是班级成员访问操作员(请参阅5.2.5)。 尽管此名称同时附加到->
和2986508203191698698433运算符上,这意味着它更像是组名。 在标准文本中,.
也称为点运算符,->
也称为箭头运算符。
稍后添加:以上内容适用于C ++标准。 C标准仅将->
称为Index中的箭头运算符。 该文档的正文似乎没有使用任何特定名称。
根据Wikipedia的C和C ++运算符列表,它称为“指针成员”。
但是老实说,我一直称它为“箭头”。 例如,如果我有代码a->b
,则将其读为“ a箭头b”。
它只是分散(即不是点)。
这些术语绝不是官方的,但我将点运算符称为直接(类)成员访问运算符,将箭头运算符称为间接(类)成员访问运算符,以阐明它们与间接运算符的关系。
ISO / IEC 9899:1999(C99标准)的索引具有三个“箭头操作符”(本身具有,并在“联合”和“结构”下)的索引条目,请参阅第6.5.2.3节(结构和 工会成员,在Postfix运算符部分中)。 但是,在第6.5.2.3节中没有提到“箭头”,也没有在索引中提及索引的其他地方(“箭头”的所有其他出现都是“窄”的一部分或窄的衍生形式)。
因此,箭头在C标准中被半官方批准(不过,索引不是规范性的也不是标准设置)。
解引用指针
我听说它指的是几种不同的方式,尤其是从不保证任何人都比其他人更正式。
- 会员选择运营商
- 指针解引用运算符
- “箭箭”
而且我敢肯定还有其他人。 就我个人而言,我不太在意书或正式规范中的名称,而更担心的是人们在提及该名称时会明白我的意思,因此我认为“ arrowthingy”是它的最好名称,因为它最简单 清楚地了解所指的是什么。
ISO C标准将其称为->
操作员或member-access->
操作员。 因此,显然,它在C中没有“正式”名称。
就个人而言,我只是说指针或箭头。
最近有一个关于操作员如何在上下文中“发音”的问题。考虑在上下文中发音为“ times”的乘法运算符。
我考虑了两个成员访问运算符{。 ->}表示拥有,因此我将它们说成是物上的所有物。
例如...fido-> collar()...将被发音为“ fido的项圈”。
另一方面,占有不适合动词,所以...fido-> run()...将被发音为“ fido run”。