谢谢各位的帮助,明白了,不同的编译器处理方法不一样,只能记住这种处理方法,没多少道理可讲
以下是引用书生牛犊在2016-10-5 10:46:45的发言:
我们唯一可以确定的就是这行代码执行过后a=8.
我们唯一可以确定的就是这行代码执行过后a=8.
也不能,因为中间没有序列点,此a可能非彼a,也就是执行一个a++时它不知道还有另外的a++,可能不去更新修改后的a值。
当然,以上都没有意义,未定义行为 和 实现定义行为 不一样,后者指有确定的结果,只是各个编译器的结果可能不一致,无法移植;而前者,对同一个编译器都可能不一样,第一次运行可能给你72个处女,第二次运行可能直接爆了你。