什么是C ++的箭头( – >)运算符的正式名称?

我一直把它称为“箭头操作符”,但我确定它有一个正式的名字。 我很快浏览了C ++标准,并没有看到它的名字。

C ++标准只是把它称为“箭头”(§5.2.5)。

Bjarne Stroustrup称之为“结构指针解引用”操作符(TC ++ PL特别版,第102页)。 在索引中,他将其称为“成员访问”操作员。

不知道这是不是“官方”,但毕竟,这家伙确实写了这个语言。

此运营商的正式名称是类成员访问运营商 (见5.2.5)。 虽然这个名字是连接到两个.->操作符,这意味着它更像是一个组名。 的. 在标准文本中也被称为点运算符->作为箭头运算符

稍后添加:以上适用于C ++标准。 C标准指的是->作为指标的箭头运算符 。 该文件的正文似乎没有使用任何特定的名称。

根据维基百科在C和C ++中的运算符列表 ,它被称为“指针成员”。

但是说实话,我一直把它叫做“箭”。 例如,如果我有代码a->b ,我会把它看作“箭头b”。

它只是点(即不是点)。

这些条款绝不是官方的,但是我会把直接(类)成员访问运算符和箭头运算符( 间接(类)成员访问运算符)称为点运算符,以阐明它们与间接运算符的关系。

ISO / IEC 9899:1999(C99标准)的索引有三个用于“箭头运算符”的索引条目(本身和“联合”和“结构”),参见6.5.2.3节工会成员,在Postfix运算符部分)。 然而,第6.5.2.3节或标准中的其他任何地方都没有提及“箭头”,而是指数(箭头的每一个外观都是“狭义”的一部分,或是狭义的一个导数)。

因此,箭头在C标准中被半官方认可(虽然这个指标并不是规范的或标准的)。

解引用指针

我听说它提到了几种不同的方式,不能确定任何一个人都比另一个更官方。

  • 成员select操作员
  • 指针解除引用操作符
  • “箭头thingy”

我确定还有其他人。 个人而言,我不太关心它在书中或官方说明书中的含义,更关心的是当我提到它的时候,人们知道我的意思,所以在我看来,“arrow thingy”是最好的名字,因为它是最简单的清楚地理解被提及的内容。

ISO C标准将其称为 -> 运算符成员访问 -> 运算符 。 所以显然它在C中没有“官方”的名字

就我个人而言,我只是说指针箭头

最近有一个关于运营商如何在上下文中“发音”的问题。 考虑在上下文中发音为“times”的乘法运算符。

我认为这两个成员访问运营商{。 – >}表示拥有,所以我宣布他们作为所有格的对象。

例如… fido-> collar()…将被读作“fido's collar”。

另一方面,对于动词来说占有是不合适的,所以… fido-> run()…将被读作“fido runs”。

Interesting Posts