请教:k=i+++j 的计算过程,为什么

来源:百度知道 编辑:UC知道 时间:2024/06/02 22:22:21

k=i+++j算术运算符自左向右结合,所以理解为:k=(i++)+j

考试写成这个 可以说出题的人无聊 可以无视

自已写程序写成这样就是找抽。

谁考你这个你就抽他。至少现状是,不同编译器会有不同结果。

----

实际编译器未必会按照标准处理,把多个赋值运算混合在一个表达式里是很冒险的写法。

这个题目考的不是编译器,实际结果跟编译器也无关,对于ANSIC,有一种maximalmunch strategy(最大一口策略),这种策略表示如果下一个标记有超过一种的理解方案,编译器将选取组成最大字符序列的方案,所以这个例子将被解释为k = i++ + j;而不是 k = i+ ++j;这样就好办了吧。先计算i + j,然后将值赋值给k,然后i自增

不同的编译器,会有不同的规定.
你最好加上括号,这样就明白了.