c++中 int i = 3;int s = (++i)+(++i)+(++i);结果为什么是16
来源:百度知道 编辑:UC知道 时间:2024/05/17 04:46:05
不要依赖未定义行为。
参见:http://zhidao.baidu.com/question/111663274.html
在此式中,两个序列点之间i的值被修改了3次,所以标准已经放弃了这个表达式。任何思考都是没有根据的。不同的编译器结果不同。
3*3加再加1加1加2加3当然等于16
++i的意思是i自增1,第一个式子i++后为4,在看第二个式子,此时i在第一个式子中已经自增为4,所以第二个式子i++后为5,同理第三个式子中,此时i在第二个式子中已经自增为5,i++后为6,故最后答案为:4+5+6=15,你答案错了。
5楼正解,,哈哈..我在VS2008上答案是18
16才是正解。