int t, x=10;t=(--x)+(--x);t=?

来源:百度知道 编辑:UC知道 时间:2024/06/06 10:13:51
解释一下!

t=不确定!
因为C语言规定
--x(左侧)的值为9
--x(右侧)的值为8或者9
考虑实现的原因,其他的某些值也是可以的。

准确的讲C语言的规范中规定:--x的x在本次取值是x-1,但是x的值减少可以在取值之后立即发生或者任何在t=...;语句执行完毕之前。或者说只要存在多个++x,--x,类似的语句在一个表达式内,就不存在确定的值。对于某些编译器可能是确定的。

在VC下为16.x先自减两次,x值为8.再相加,即得16.