亲测: c = 8 . b = 7说明了 --运算符在整个右边表达式执行完毕后才赋的值在其他语言中. c=b=8. 补充一下:这个问题好像并没有这么简单 昨天试了一下.举个例子 int a = 1;a = a + a--; 如果在c语言中,那么a的结果就是0. 当执行a = a + a--时,先执行=号右边的表达式,那么右边的表达式是2.把2的值写入到a的内存中.然后在执行a--,那a指向的内存就修改成了1. 在其他语言中执行a = a + a--时,右边表达式计算完,不写入内存,执行--操作,把--后的值1写入内存,然后在把整个右边表达式的结果赋值给a指向的内存,那么a指向的内存就变成了2. 区别就在写入内存的时间不同.
亲测: c = 8 . b = 7
说明了 --运算符在整个右边表达式执行完毕后才赋的值
在其他语言中. c=b=8.
补充一下:这个问题好像并没有这么简单
昨天试了一下.举个例子
int a = 1;
a = a + a--;
如果在c语言中,那么a的结果就是0.
当执行a = a + a--时,先执行=号右边的表达式,那么右边的表达式是2.
把2的值写入到a的内存中.
然后在执行a--,那a指向的内存就修改成了1.
在其他语言中
执行a = a + a--时,右边表达式计算完,不写入内存,执行--操作,把--后的值1写入内存,
然后在把整个右边表达式的结果赋值给a指向的内存,那么a指向的内存就变成了2.
区别就在写入内存的时间不同.