退出打印视图
K&R C 为编译器提供一个许可证,以便重新整理包含算术上可交换并且关联的相邻运算符(甚至出现圆括号)的表达式。但是,ISO C 没有给编译器同样的自由。
本节通过考虑以下代码片段中的表达式语句,讨论这两个 C 定义之间的差异,并阐明表达式的副作用、分组以及求值之间的差别。
int i, *p, f(void), g(void); /*...*/ i = *++p + f() + g();