有关C++自增运算符的问题
定义inti,j,m,n;i=8j=10;m=++i+j++;n=(++i)+(++j)+m.输出i,j,m,n的值。我是这样计算的:根据自增运算符的结合方向是自右向左,...
定义int i,j,m,n;i=8 j=10;m=++i+j++;n=(++i)+(++j)+m.
输出 i,j,m,n的值。
我是这样计算的:
根据自增运算符的结合方向是自右向左,因此m=++i+(j++)=++i+11=++(i+11)=++19=20,n=(9)+(11)+20=20+20=40,最后输出结果为8,10,20,20. 为何答案为10,12,10,41,求详解,需要有计算步骤及解释. 展开
输出 i,j,m,n的值。
我是这样计算的:
根据自增运算符的结合方向是自右向左,因此m=++i+(j++)=++i+11=++(i+11)=++19=20,n=(9)+(11)+20=20+20=40,最后输出结果为8,10,20,20. 为何答案为10,12,10,41,求详解,需要有计算步骤及解释. 展开
3个回答
展开全部
更多追问追答
追问
第(5)步(++j)的值怎么成了12,怎么不是11呢?
追答
因为j原来的值是10,第(4)步,j++之后,j=11了啊,然后第5步++j,自然j=12啊
展开全部
int i, j, m, n;
i = 8;
j = 10;
m = ++i + j++; 神猛// ++i是前置自增所以是++i变为9 j++是后置自增
磨态 // 所以先取前置自增的值9+j本来的值10 m=9+10=19
n = (++i) + (++j) + m; // 此时经瞎瞎源过上面的自增后i为9,j为11,这里原理同上,i和j都是前置自增,所以先取++后的值分别为i=10,j=12,m=19 n=10+12+19=41
关键要理解透何谓前置自增(减)和后置自增(减)以及它们的区别:顾名思议,前置就是先自增(减)再取出值,后置自增(减)就是先取出值,然后再作自增(减)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
m=(++i)+(j++)=9+10=19, i=9, j=11
n=10+ 12 + 19 = 41, i=10, j=12
所以答案中蚂斗为卖磨: 10,物差12,19,41
n=10+ 12 + 19 = 41, i=10, j=12
所以答案中蚂斗为卖磨: 10,物差12,19,41
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询