int b[10]={0,1,2,3,4,5,6,7,8,9};
int index=0;
index=0;
int c=b[++index]+b[++index]+b[++index];
本条代码相当于 c=b[index]+b[index]+b[index]; index++;index++;index++;所以最后结果c=0 index=3;
index=0;
int c=b[++index]+b[++index]+b[++index];
qDebug()<< c
<< index;
词条代码相当于下面两条代码
index++;index++;index++;
c=b[index]+b[index]+b[index];
所以最终结果 index=3. c=9.
也就是说 在单一表达式内部。 i++使用的是i值。在++i中使用的是i++值
如果在表达式中既有i++也有++i
如“
index=0;
int c=b[++index]+b[++index]+b[++index];
执行步骤为
1,++index;
2,
b[index]+b[index]+b[index];
3,index++;index++;
分成3步。所以最后结果 c=3 index=3;
注意
int index=0;
qDebug()<< b[index]
<< b[index++]
<< b[index++]
<< index
<< b[index];
qDebug()中 可以把上面看成一个表达式。所以 上面几个的输出值是一样的。
总结:带有 i++ 和++i i-- --i 表达式的 先进行 ++i ,--i 然后进行表达式运算 最后进行 i++ i--运算
index=0;
测试 int m=b[index++]+b[++index]+b[++index]+b[++index]+b[--index]+b[index--]
先进行++i --i index=2 m=12 在进行i++ i-- index=2
最终 m=12 index=2;
”