C++语言 a=1 c=(a+=3)+(a*=2) 为什么C=16?
inta=1;intc=(a+=3)+(a*=2);程序算出来结果是16,求解。。。我的思路是这样的先算a+=3结果为4再算a*=2这时a=4表达式的结果为84+8=12...
int a = 1;
int c = (a+=3) + (a*=2);
程序算出来结果是16,求解。。。
我的思路是这样的 先算 a+=3 结果为4 再算a*=2 这时a = 4 表达式的结果为 8
4 + 8 =12 可结果为什么是16呢 展开
int c = (a+=3) + (a*=2);
程序算出来结果是16,求解。。。
我的思路是这样的 先算 a+=3 结果为4 再算a*=2 这时a = 4 表达式的结果为 8
4 + 8 =12 可结果为什么是16呢 展开
6个回答
展开全部
a+=3返回的并不是a+3的值,而是a的值,
a最后算出来是8没错,
所以c = a+a=16
a最后算出来是8没错,
所以c = a+a=16
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a*=16+3-5
a*=14
a=28
++b是先自增后运算
b++是先运算后自增
不小心就看花了
a*=14
a=28
++b是先自增后运算
b++是先运算后自增
不小心就看花了
追问
我刚看完 你这答案的题目 在此 本人郑重的送你两个字:S B
参考资料: 百度一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将这个式子重写一下,你就清楚了:
int c = (a+=3) + (a*=2);即等价于如下:
int c = (a=a+3) + (a=a*2);//a的值为8
c=a+a=8+8=16
int c = (a+=3) + (a*=2);即等价于如下:
int c = (a=a+3) + (a=a*2);//a的值为8
c=a+a=8+8=16
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我算出来也是12...关注中
可能是这种情况,实际表达式c=a+a,你懂的,a最后为8
所以c=8+8=16
可能是这种情况,实际表达式c=a+a,你懂的,a最后为8
所以c=8+8=16
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |