请高手解释一下这段程序: main() { int x=3,y=4,n; n=x-y++; }为什么n等于-1呢??

如题所述

c++里面优先级++符号是最高,然后是运算符,但是因为y++执行是先使用,后自加,所以使用y值的时候y的值还是4,所以3-4=-1,n就为-1,如果这时候再输出y的值,你可以发现y的值其实是5
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-09
y++是先执行的就变成5了,结果应该是-2
第2个回答  2012-06-09
y++是后置自增,只有在表达式计算完成后,y才会加1,因此n=3-4为-1,然后y自增等于5
第3个回答  2012-06-09
y++表示先取y的值参与运算,在把y的值加1;
而++y,正好相反,先把y的值加1,再将改变后的y值参与运算
第4个回答  2012-06-09
因为y的自增是后置的,在使用y后才自增的,不影响前面运算的结果,所以n=-1,y=5,如果前置就n=-2,y=5
第5个回答  2012-06-09
n=x-y++相当于n=x-(y++)而y++是两个意思:y=5, y++整体还是4,所以n=x-(y++)=3-4=-1
大家正在搜