i=6;
不知道你是用什么编译器编译的,在VC++里面K=15;
解释:++是自加运算符
自加运算符放在前面和后面优先级是不一样的,也即是说编译的时候,
(1)先执行的是两个放在前面的自加运算,运算结果i=5;
(2)计算K值,5+5+5=15
(3)执行放在后面的自加运算,运算结果i=6
15
由于编译器从右向左扫描程序分析,是从右向左执行的,如果你学过编译原理,你就知道了。
下面分析如下,值得注意的是i++,i的值加1,而表达式的值不变.++i,表达式和i都加1
详细分析如下
// i=3 执行i++后 i++ 值3 i值4
// i=4 执行++i后 ++i 值5 i值5
// i=5 执行++i后 ++i 值6 i值6
这样分析结果是14,但是VC运行结果是15,不同编译器结果会不一样。
所以我现在也很纠结。
k等于14 i=6
i++ ;i先参与计算再加1;++i 先加1,再参与计算;有括号算括号里的
首先 ++i i加1变为4;k=4
之后 ++i i加1变为5;k=4+5
再之后 i++之后i再加1;变为6再算括号之外的;k= 4+5+6=15;
不明白的话给我留言 ;