i=3,k=(i++)+(++i)+(i++),问k和i ?????

来源:百度知道 编辑:UC知道 时间:2024/05/18 04:40:42
书上是:k=12,i=6

请高手指点啊!!!谢谢
我自已觉得(i++)这应该值为3,但是到了(++i)的时候应该等于5啊

i的值肯定是为6的,因为执行了3次的++操作,所以i最后的值肯定是6
那么k为什么是12呢。
这样来看:
整个k=(i++)+(++i)+(i++),表达式,

前缀优先级大于后缀
++,--运算符优先级大于()
所以先是运算中间那个()里面的++i,
i就变成4,然后两个后缀同时运行i++。
后缀(i++)的值是还没加1之前的值。
前缀(++i)的值是加了1之后的值。
所以式子就是4+4+4=12