C 中的优先顺序和求值顺序有什么区别?

问题描述 投票:0回答:1

我想到了一个具体的例子。

x = a +++ b;

这被评价为

a++
而不是
++b
。但我不明白这是由于后缀的优先顺序高于前缀,还是由于评估顺序是从右到左。

这两个术语有什么区别?

c operator-precedence evaluation associativity
1个回答
0
投票

C 和 C++ 编译器急切地处理标记,并根据它能找到的最长的可能有效标记来分割表达式。它是由C标准定义的

C11 标准,第 6.4 节,第 4 段

如果可以通过连接字符来形成“令牌”以形成有效的 关键字、标识符、常量、字符串文字、标点符号或其他 字符,那么应该选择尽可能大的‘token’。

© www.soinside.com 2019 - 2024. All rights reserved.