问题描述
我只是想知道,对于以下代码,编译器是否单独使用关联性/优先级或其他一些逻辑来评估。
int i = 0,k = 0;
i = k++;
如果我们根据结合性和优先级进行评估,则 postfix ++
的优先级高于 =
,因此首先评估 k++
(变成 1
)然后是 {{ 1}},现在 k 的值是 =
分配给 1
。
因此 i
和 i
的值将是 k
。但是,1
和 i is 0
的值。
所以我认为编译器将这个 k is 1
拆分为两个 i = k++;
。因此,这里的编译器不会针对语句关联性/优先级,它也会拆分行。有人能解释一下编译器如何解析这些类型的语句吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)