黑马程序员技术交流社区

标题: 求解答 [打印本页]

作者: woaidd99    时间: 2015-5-23 21:00
标题: 求解答
int main()
{
    int b = 10
    b = b--
    b = b--
}
  最后b的值是多少啊 为什么啊
作者: sss18310878521    时间: 2015-5-24 23:14
结果不变,因为对于这种算法,如果不参与运算的话,那么它的结果是不会变的
作者: Never_Yg    时间: 2015-5-25 00:43
b--先给表达式附值,然后做自减运算,第一次b的值为9,b--表达式的值为10,再一次b--就是b值等于8,表达式值为9!  最后把b--表达式的值附值给了b,所以b=9
作者: 蜡笔小炎    时间: 2015-5-25 00:55
刚刚敲了一下,证实了结果还是10。具体原因是什么,我也不清楚。
我分析可能是这样,这只是我觉得啊,别当真。
b = b--;相当于b = b = b -1;把编译器搞傻逼了,不知道什么意思就没编译。
作者: 白昼那知夜的黑    时间: 2015-5-25 13:09
b=10,因为每次--之前都会先赋值
作者: hi虚无缥缈    时间: 2015-5-25 22:01
b--是减前取值
b=b--是把10赋值给不。
作者: woaidd99    时间: 2015-5-25 22:56
Never_Yg 发表于 2015-5-25 00:43
b--先给表达式附值,然后做自减运算,第一次b的值为9,b--表达式的值为10,再一次b--就是b值等于8, ...

可以敲一下代码试试
作者: Never_Yg    时间: 2015-5-26 17:31
woaidd99 发表于 2015-5-25 22:56
可以敲一下代码试试

试过了,结果还是10!我错在第二次b--的时候b=9了!表达式的值b--一直等于10,并没有改变
问题不错,学到了
作者: Residual_mem    时间: 2015-5-26 18:05
第一:会不会是没有分号?

第二:运算方法重复?

第三:没有进行运算。
作者: 又又Win    时间: 2015-5-26 18:18
b值为10,b--是先赋值后做减1
作者: yi95392    时间: 2015-5-28 00:23
结果为10
作者: taolove    时间: 2015-6-1 21:59
10,先得到b的值10赋值给b,此时的b就是10了,然后执行下面的语句,依然是把10又次赋值给b




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2