自加问题++++++++++++++

    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;

posted on 2019-03-29 00:48  杜鹃醉鱼鱼  阅读(804)  评论(0编辑  收藏  举报

导航