在 C++ 语句中使用运算符“+”和“*”

Using operator '+' and '*' to statements in C++

在 C++ 中,当我 运行 此代码时:

void main()
{
  2;
  +
  3;
}

没有错误 但是当我 运行 这个代码时:

void main()
{
  2;
  *
  3;
}

有这个错误:

main.cpp:5:3: error: invalid type argument of unary ‘*’ (have ‘int’)
    5 |   3;
      |   ^

请有人解释一下谢谢

请忽略 2;,它本身就是一个声明,不会执行任何操作。然后,如果我们删除空格,我们得到

+3;

这是一个有效的表达式。就像 -3; 也是有效的。 +33 相同。您可以阅读有关一元加 here:

+ expression

unary plus (promotion).

For the built-in operator, expression must have arithmetic, unscoped enumeration, or pointer type. Integral promotion is performed on the operand if it has integral or unscoped enumeration type and determines the type of the result.

另一方面,

*3 没有意义。一元 * 不能应用于文字 3.

因为 C++ 是自由风格的语言。所以 space 没关系。

在第一种情况下,它变为 +3,这是一个有效的陈述。 Read Here about +

但在第二种情况下,它变为 *3,这是无效的,因为编译器认为您正在尝试取消引用 3,这是无效的。