我几乎是编程新手。
我在很多问题论文和考试中都看到了很多这类问题
int j= 5;
int i=0;
i= j++ + ++j + j++ - ++j ;
我总是预测变量'i'的错误值。我的朋友提出了很多方法 但是在一些或其他这样的表达中都失败了。
是否有一些通用规则/方法来评估此类表达方式?
答案 0 :(得分:1)
ANSI C明确拒绝对n-ary操作的参数评估顺序做出任何保证。因此有
y = j++ + ++j
..您最终可能会得到以下其中一项的逻辑等效项:
x1 = j++; x2 = ++j; y = x1 + x2
..或
x1 = ++j; x2 = j++; y = x1 + x2
取决于编译器,编译器版本,操作系统甚至编译标志。更复杂的表达会使事情变得更加混乱。