在下面的情况下,
int i = 0;
int j = 42;
i = j++;
我知道 ++
是后缀运算符,那么,j
是后缀表达式还是应该说 j++
是后缀表达式?
最佳答案
在句法上,j
和j++
都是后缀表达式。
参见 C++ 2003 标准第 5.2 节中的语法:
postfix-expression:
primary-expression
...
postfix-expression ++
(j
也是一个基本表达式;j++
不是。)
主表达式是一种后缀表达式(即使它不包含后缀运算符)这一事实主要是为了方便定义语言语法。将 j
称为后缀表达式没有多大意义,除非您谈论的是解析 C++(或 C)源代码。
关于c++ - 混淆后缀表达式和运算符的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8062950/