在C ++中将运算符'+'和'*'用于语句

Wil*_*ill -4 c++ operators unary-operator

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

void main()
{
  2;
  +
  3;
}
Run Code Online (Sandbox Code Playgroud)

没有错误,但是当我运行此代码时:

void main()
{
  2;
  *
  3;
}
Run Code Online (Sandbox Code Playgroud)

有这个错误:

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

请有人解释一下谢谢

Bla*_*aze 10

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

+3;
Run Code Online (Sandbox Code Playgroud)

这是一个有效的表达式。像怎么-3;也有效。+3与相同3。您可以在此处阅读有关一元加号的信息

+ expression

一元加号(促销)。

对于内置运算符,表达式必须具有算术,无作用域枚举或指针类型。如果操作数具有整数或无范围的枚举类型并确定结果的类型,则对操作数执行积分提升。

*3另一方面,是没有意义的。一元*不能应用于文字3