由四个C++声明符号组成的整个组的名称

Name of entire group of four C++ declaration symbols?

本文关键字:符号 声明 四个 C++      更新时间:2023-10-16

我的理解是,一般来说,整个非字母数字字符组,如*、?、;、#,等等可以称为标点符号。然而,在这样的表达式中

3*4

*特别被称为"运算符",而在像这样的声明中

int *p;

*不是运算符,而只是表示p是指针。类似地,3个附加符号&,[]和()在声明中使用时不被称为运算符。我知道所有这些符号在不同的上下文中意味着什么,它们是如何发音的,它们的作用是什么,但在声明中使用时,这四个符号是否有一个特定的名称?我一直称它们为"属性",因为没有更好的东西,我在语言标准中找不到任何关于团队名称的具体内容。

如您所知,*、?、;、#等字符等等在C和C++中被称为标点符号。

标点符号是对编译器,,但具体意义取决于上下文A标点符号也可以是在预处理器。

标点符号不是运算符或标识符有些字符可以用作标点符号、运算符或运算符的一部分发生的上下文指定含义

来自C标准6.4.6:

标点符号是一种具有独立句法和语义意义的符号根据上下文,它可以指定要执行的操作(这反过来可能产生一个值或函数指示符,产生副作用,或其组合),在这种情况下,它被称为运算符(某些上下文中也存在其他形式的运算符)。操作数是运算符作用于其上的实体。

它们的含义因使用环境而异。因此,整个四个符号组没有特定的名称,如果你想用一个单词来称呼它们,那么,我相信,单词标点符号是最合适的单词。

附加:大多数标点符号在C和C++中很常见。但是C++有一些附加的标点符号,如::.*newdelete等。

但是在声明中使用时,这整个四个符号组是否有特定的名称?

有点。在声明中引用这些符号的语法结构是"声明符"。然而,这个名称在标准讨论之外并没有真正使用;只是没有太多必要将声明符符号作为一个组来引用。

此外,还有更多的声明符符号。在C中,有()(用于函数声明)。C++为我们提供了...(参数包声明)和&&(r值引用)。

在语句声明中使用时,这4个符号被视为声明符修饰符。分类器punctuator简单地表示它们可以在多个上下文中使用,因此它们也被认为是punctuators。https://msdn.microsoft.com/en-us/library/aa267831(v=vs.60).aspx

当在非声明性庄园中使用时:所有4个符号(*,&,[],())都被认为是c++中的运算符。有不同类型的运算符,如算术运算符、关系运算符和逻辑运算符。乘法符号属于算术运算符类别,其中其他4个运算符属于其他运算符类别。*称为尊重运算符&称为运算符的地址。[]称为下标运算符。()被称为函数调用运算符。由于它们都被认为是c++中的运算符,这意味着您可以覆盖它们的功能。

这是一个很好的链接,它演示了c++中的运算符优先级:http://www.geeksforgeeks.org/operators-c-c/