vc++的一个问题,高手帮忙解决下。。。

来源:百度知道 编辑:UC知道 时间:2024/05/29 10:43:20
int i=,k;
k=(i++)+(i++)+(i++);
cout<<"i="<<i<<"k="<<k;

的结果是什么??是不是: i=8 k=18
高手帮忙解决下,请尽量详细点,本人刚学vc++。

i的初始值是多少?
先设i的初始值是1,那么:
k=1+2+3=6,
i=4,
因为:
k=(i++)//此时的i是1,自增之后值就成了2,但仍返回1,因为i++是先返回值,再自增;
+
(i++)//此处的i是2,因为前边已经自增过了。此处自增之后就成了3,但(i++)的值还是2;
+
(i++);//此处的i是3,再自增之后就成了4,但仍返回3。所以就是k=1+2+3;

记得学时候可能是翻译器不同结果也会不同

i的初始值是多少?
先设i的初始值是1,那么:
k=1+2+3=6,
i=4,
因为:
k=(i++)//此时的i是1,自增之后值就成了2,但仍返回1,因为i++是先返回值,再自增;
+
(i++)//此处的i是2,因为前边已经自增过了。此处自增之后就成了3,但(i++)的值还是2;
+
(i++);//此处的i是3,再自增之后就成了4,但仍返回3。所以就是k=1+2+3;