下文中的序列点该怎么理解?
使用我的编译器,下面的代码int i=7; printf("%d\n", i++ *
i++); 返回49?不管按什么顺序计算, 难道不该打印出56吗?
尽管后缀自加和后缀自减操作符++ 和-- 在输出其旧值之后才会执行运算,
但这里的“之后”常常被误解。没有任何保证确保自增或自减会在输出变量原值之
后和对表达式的其它部分进行计算之前立即进行。也不能保证变量的更新会在表
达式“完成” (按照ANSI C 的术语, 在下一个“序列点” 之前, 参见问题3.7) 之前
的某个时刻进行。本例中, 编译器选择使用变量的旧值相乘以后再对二者进行自
增运算。