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

发布于 2024-12-14 05:41:03 字数 181 浏览 1 评论 0原文

在下面的情况下,

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

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

In the following case,

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

I know ++ is posfix operator, So, is j a posfix expression or should you sayj++ is posfix expression ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

内心激荡 2024-12-21 05:41:03

从语法上来说,jj++ 都是后缀表达式。

请参阅 C++ 2003 标准第 5.2 节中的语法:(

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

j 也是主表达式;j++ 不是。)

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

Syntactically, both j and j++ are postfix-expressions.

See the grammar in section 5.2 of the C++ 2003 standard:

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

(j is also a primary-expression; j++ is not.)

The fact that a primary-expression is a kind of postfix-expression (even if it doesn't contain a postfix operator) is mostly a matter of convenience for defining the language syntax. There's not much point in referring to j as a postfix-expression unless you're talking about parsing C++ (or C) source code.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文