i 的初值为 8,第 2 行 i 加 1 后输出故为 9;第 3 行减 1 后输出故为 8;第 4 行输出 i 为
之后再加1(为 9);第5行输出 i 为9之后再减 1(为 8) ;第6行输出-8 之后再加 1(为 9),
第 7 行输出-9 之后再减1(为 8)。
看谭浩强的书实际运算结果和书中讲解不同、???【例 3.17】
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。
但是我实际运算的答案是 15 22 8 8 希望朋友可以给我详细解答??