什么是c ++中的i +++增量

Bis*_*ury 3 c++ increment operators

任何人都可以告诉我c ++中i +++增量的过程是什么.

cod*_*ict 20

这是一个语法错误.

使用最大咀嚼规则 i+++标记为:

i ++ +
Run Code Online (Sandbox Code Playgroud)

最后一个+是二元加法运算符.但显然它没有两个导致解析器错误的操作数.

编辑:

评论中的问题:我们可以i++++j吗?

它被标记为:

i ++ ++ j
Run Code Online (Sandbox Code Playgroud)

这又是一个语法错误,就像++一元运算符一样.

在类似的行上i+++++j被扫描仪标记为:

i++ ++ + j
Run Code Online (Sandbox Code Playgroud)

这与((i++)++) + j错误一样,因为i++它不是左值,并且++不允许使用它.


Arm*_*yan 16

i+++;不会编译.C++中没有operator +++.

i+++j另一方面,将编译.它将添加i和j然后递增i.因为它被解析为(i++)+j;

  • 还要注意,它会丢弃`i + j`的结果,除非你也分配它. (2认同)