C语言中.n等于3,b=(n++)+(++n)+(n++)等于多少

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/24 00:17:09
C语言中.n等于3,b=(n++)+(++n)+(n++)等于多少
xS]oA+&&Al%$B_ҦJhI *l ,R@*-m a61_Abd=sϹލ&  ̀:j̧a>58ob ڋL.G6Qb%wމ#ŧP2Wk/nͥ<ƻ 'wL̥R/7Rz"sD~] ?S%z޼`_V1nk 1*Fޭl}^Ud-z(57̰[nG= s\!aVm6vA20Sv0 p*uZ#8 -AfhoNdJ';@<gw%/A<pM@OޡvQ>amvZg;߁2; dJH`Dr: :m^;u@^4q*\*ɺ4iX) ?:&ҽl}30N#jQco:;0E%Cgħq^̈́7 ( )iXhTa|`UaK, p;'É ~)QBFrE[of#

C语言中.n等于3,b=(n++)+(++n)+(n++)等于多少
C语言中.n等于3,b=(n++)+(++n)+(n++)等于多少

C语言中.n等于3,b=(n++)+(++n)+(n++)等于多少
int main()
{
int n = 3;
printf("%d\n", (n++)+(++n)+(n++));
printf("%d\n", n);
int m = 3;
printf("%d\n", (m++)+(++m));
printf("%d\n", m);
return 0;
}
我自己试了一下,在Windows和linux,这个程序运行的结果相同,都是 12 6 8 5.
由此可以推算一下运行的方式,很明显,对于 (n++)+(++n)+(n++) 的计算,不是 ((n++)+(++n))+(n++)来的,不然结果就是 8+6=14了.反之也不对.
唯一的解释就是,12 = 4+4+4, 8=4+4.也就是说,以上两个计算当中,值只增加了1次,在算出结果之后,值才按我们预期的计算.
于是我有试了一下:
int j = 3;
printf("%d\n", (j++) + (j++));
printf("%d\n", j);
结果正如我所料,是 6 5.
结论:在 ++x 与 x++ 的连续表达式中,先计算 ++x 的数量,每有1个 ++x, x的值增加1;然后进行 运算符(+,-)运算,最后执行 x++运算.