运算符结合性,优先级

问题描述

我只是想知道,对于以下代码,编译器是否单独使用关联性/优先级或其他一些逻辑来评估。

int i = 0,k = 0;

i = k++;

如果我们根据结合性和优先级进行评估,则 postfix ++ 的优先级高于 =,因此首先评估 k++(变成 1)然后是 {{ 1}},现在 k 的值是 = 分配给 1

因此 ii 的值将是 k。但是,1i is 0 的值。

所以我认为编译器将这个 k is 1 拆分为两个 i = k++;。因此,这里的编译器不会针对语句关联性/优先级,它也会拆分行。有人能解释一下编译器如何解析这些类型的语句吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)