4.1 为什么这样的代码:
a[i] = i++; 不能工作?
子表达式 i++ 有一个副作用 --- 它会改变 i 的值 --- 由于
i 在同一表达式的其它地方被引用, 这会导致无定义的结果,
无从判断该引用(左边的 a[i] 中)是旧值还是新值。(注意, 尽管
在 K&R 中建议这类表达式的行为不确定, 但 C 标准却强烈声明它是无
定义的, 参见问题 11.32。
参考资料: [K&R1, Sec. 2.12]; [K&R2, Sec. 2.12];
[ISO, Sec. 6.3]; [H&S, Sec. 7.12 pp. 227-9]。
翻译朱群英、孙云, LaTeX2HTML 编译 朱群英 (2005-06-23)