c++ - 混淆后缀表达式和运算符的语法

标签 c++ syntax

在下面的情况下,

int i = 0;
int j = 42;
i = j++;

我知道 ++ 是后缀运算符,那么,j 是后缀表达式还是应该说 j++ 是后缀表达式?

最佳答案

在句法上,jj++ 都是后缀表达式。

参见 C++ 2003 标准第 5.2 节中的语法:

postfix-expression:
    primary-expression
    ...
    postfix-expression ++

(j 也是一个基本表达式;j++ 不是。)

主表达式是一种后缀表达式(即使它不包含后缀运算符)这一事实主要是为了方便定义语言语法。将 j 称为后缀表达式没有多大意义,除非您谈论的是解析 C++(或 C)源代码。

关于c++ - 混淆后缀表达式和运算符的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8062950/

相关文章:

带有静态函数的 PHP 动态类名

javascript - 如何从 Javascript 中的参数访问对象内的对象?

MYSQL将查询结果保存到另一个表中

c++ - 返回表值计数的最佳 R 数据结构

c++ - {"error":"invalid_client"} 尝试刷新 token 时来自 Spotify Web Api

c++ - 全局变量0-初始化惩罚

c++ - 确定性 C++ 程序的 "Random"输出。可能的原因?

c# - C# 中的数组声明语法是否有原因?

java - Java中的字符串...参数

c++ - 随机填充二维数组