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

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/30 04:09:26
C语言中.n等于3,b=(n++)+(++n)+(n++)等于多少C语言中.n等于3,b=(n++)+(++n)+(n++)等于多少C语言中.n等于3,b=(n++)+(++n)+(n++)等于多少i

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++运算.