A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© woaidd99 中级黑马   /  2015-5-23 21:00  /  1293 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int main()
{
    int b = 10
    b = b--
    b = b--
}
  最后b的值是多少啊 为什么啊

11 个回复

倒序浏览
结果不变,因为对于这种算法,如果不参与运算的话,那么它的结果是不会变的
回复 使用道具 举报
b--先给表达式附值,然后做自减运算,第一次b的值为9,b--表达式的值为10,再一次b--就是b值等于8,表达式值为9!  最后把b--表达式的值附值给了b,所以b=9
回复 使用道具 举报
刚刚敲了一下,证实了结果还是10。具体原因是什么,我也不清楚。
我分析可能是这样,这只是我觉得啊,别当真。
b = b--;相当于b = b = b -1;把编译器搞傻逼了,不知道什么意思就没编译。
回复 使用道具 举报
b=10,因为每次--之前都会先赋值
回复 使用道具 举报 1 0
b--是减前取值
b=b--是把10赋值给不。
回复 使用道具 举报
Never_Yg 发表于 2015-5-25 00:43
b--先给表达式附值,然后做自减运算,第一次b的值为9,b--表达式的值为10,再一次b--就是b值等于8, ...

可以敲一下代码试试
回复 使用道具 举报
woaidd99 发表于 2015-5-25 22:56
可以敲一下代码试试

试过了,结果还是10!我错在第二次b--的时候b=9了!表达式的值b--一直等于10,并没有改变
问题不错,学到了
回复 使用道具 举报
第一:会不会是没有分号?

第二:运算方法重复?

第三:没有进行运算。
回复 使用道具 举报
b值为10,b--是先赋值后做减1
回复 使用道具 举报
结果为10
回复 使用道具 举报
10,先得到b的值10赋值给b,此时的b就是10了,然后执行下面的语句,依然是把10又次赋值给b
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马