简单的程序计算
答案:2 悬赏:0 手机版
解决时间 2021-05-08 15:07
- 提问者网友:疯子也有疯子的情调
- 2021-05-07 20:20
int a=2,b; b=(a++)+2*a; 为什么b的结果是8呢? 代数的结果是 b=2+2*3; 既然前面没有加1,为什么后面却加1了呢?我倒觉得应该是b=2+2*2;要不都变要不都不变才对吧,虽然不能忽视小括号的存在,但是后面的a应该跟前面的a一样后加1才对吧。有人能帮理解一下吗?机器是怎么计算的?
最佳答案
- 五星知识达人网友:爱难随人意
- 2021-05-07 21:01
整个表达式中括号的优先级最高,所以先执行括号里的表达式.
(a++); 后自增是先用后加. 所以表达式(a++)的结果就是a原来的值2;然后a加1就等于3
然后执行+号右边的表达式2*a. 表达式的值就是2*3=6;
最终2+6=8; 所以b的结果就是8.
全部回答
- 1楼网友:从此江山别
- 2021-05-07 22:31
a++先赋值后运算,即先把2赋给a,a等于2,然后再运算++。所以a以后就变成3了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯