考虑针对Java发布的SO问题How does the +++ operator work?
我明白了
我想知道的(仅仅是为了好奇)IF
+++
它只是一个修补后的增量,然后是一个中缀添加而不是 +++
它只是一个中缀添加后跟一个前缀增量或它的一个未定义的行为。
考虑我已经测试了以下程序
#include <iostream>
int main() {
int x = 1;
std::cout<< x+++1 << std::endl;
std::cout<< 1+++x << std::endl;
}
在VC ++,gcc和g ++中,所有这些都符合
的事实'+++' its just a post-fix increment followed by an infix add
而不是
'+++' its just an infix add followed by a prefix increment
答案 0 :(得分:15)
是的,最大咀嚼规则告诉我们+++
被解析为++ +
(不是后缀后跟中缀,而是后缀后跟+
运算符),也呈现
1+++x <----> 1++ + x
非法,因为1
不是左值。