printf("%d,%d,%d",i,i++,i++);输出3,3,3正确。有两个原因供参考:i++是后++,要等输出结束后才执行加1运算;即便是前++,如printf("%d,%d,%d",i,++i,++i);,输出也不会是3,4,5,而应该是5,5,4。因为最后一个i变成4后就压栈了,中间一个在4基础上+1自然是5,最前面的一个i值未变。当然这还与编译器有点关系,如果某编译器要等把所有列表项计算完再压栈,那这里输出就应该是5,5,5了!按照这些规则,printf("%d,%d,%d",i+8,i+=5...
|