evaluation order
书介绍这一章的时候(rt), 用printf(“%d %d\n", ++n, power(2, n)); 作为反例,因为在不同的compiler下会有不同的结果,不知道在++n前会不会用到power(2, n), 这个例子是没问题的,但是后面一个我有点不懂: 就是用a[i] = i++ 作为另一个反例说明计算顺序的重要性。 我觉得这地方既然++的优先性比=高,为什么会造成混乱呢? 有一个我自己的解释是:因为如果++放在i后面说明i是先被用到后被加1, 这种规则可能和优先性相违(++放在i后面即要求先=,而因为优先性又要求先=后++)。 这种解释正确嘛?
[解决办法]