是' +++ ',它只是一个后缀增量后面跟着一个中缀(总是)

Is `+++` its just a post-fix increment followed by an infix (always)?

本文关键字:一个 总是 中缀 后缀      更新时间:2023-10-16

考虑Java的SO问题+++操作符是如何工作的?

我明白

  1. 没有像'+++'这样的操作符,它只是一个后跟中缀add的后缀增量
  2. 这是对可读性的犯罪

我想知道的(只是出于好奇)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

是的,最大剪切规则告诉我们+++被解析为++ +(不是后缀后跟中缀,而是后缀后跟+运算符),这也呈现

1+++x  <----> 1++ + x

不合法,因为1不是左值