关于自增自减问题,望指教!
main(){
int i=5,j=5,p,q;
p=(i++)+(i++)+(i++);
q=(++j)+(++j)+(++j);
printf("%d,%d,%d,%d",p,q,i,j);
}
这个程序中,对P=(i++)+(i++)+(i++)应理解为三个i相加,故P值为15。然后i再自增1三次相当于加3故i的最后值为8。而对于q 的值则不然,q=(++j)+(++j)+(++j)应理解为q先自增1,再参与运算,由于q自增1三次后值为8,三个8相加的和为24,j的最后值仍为8。
以上是谭浩强 C语言程序设计(第三版)中的一个例题。我用VC++ 6.0调试得到的结果如下:
15,22,8,8
请问q到底是22呢,还是24呢,请给出详细说明,谢谢!