大家帮我看看这自加句子
#include "stdio.h"void 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);
}
运行的结果是15,22,8,8
但是我不理解
书上的解释:
这个程序中,对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。
说说我的疑问,为什么i++第2个和第3个值不变,是否要一个语句完才生效?但++j怎么一个语句就生效了