i++和++i的区别

来源:互联网 发布:京东抢购 javascript 编辑:程序博客网 时间:2024/05/04 15:17

当年上C++课的时候对于i++和++i的区别就稀里糊涂。后来没注意也没出过什么问题。但是这个问题还是应该搞清楚。


假如有一个vector,值为[1,2,3,4,5,6,7]
用以下程序输出:
i=0;    
    while (i<7)
    {
        cout << "beforei:" << v[i] << endl;
        cout << v[i++]<<endl;
        cout << "afteri:" << v[i] << endl;
        cout << endl;
    }

i=0;        while (i<7)    {        cout << "beforei:" << v[i] << endl;        cout << v[++i]<<endl;        cout << "afteri:" << v[i] << endl;        cout << endl;    }
beforei:1
1
afteri:2

beforei:2
2
afteri:3

beforei:3
3
afteri:4
。。。

beforei:1
2
afteri:2

beforei:2
3
afteri:3

beforei:3
4
afteri:4
。。。
可见,对于向量v的索引而言v[i++]里面仍然是自增前的i值
而对于v[++i]里面已经是自增后的i值。
同样的。对于自增前的v[i]和自增后的v[i]没有任何区别。
这也是为什么一般在写for循环时
for(int i=0;i<size;i++)for(int i=0;i<size;++i)对于循环没有任何区别,因为并没有在i自增的过程中使用i。所以也不容易发现i++和++i的区别。


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 被马蜂蛰了肿了怎么办 给青竹蛇咬了怎么办 被青竹蛇咬了怎么办 孕早期吃了桂皮怎么办? 怀孕后吃了八角怎么办 孕妇吃了点八角怎么办 煮粥老是溢出来怎么办 6个月的小孩咳嗽怎么办 10个月婴儿咳嗽怎么办 6个月婴儿感冒了怎么办 六个月宝宝有痰怎么办 9月婴儿牛奶过敏怎么办 一用粉底就过敏怎么办 7个月婴儿过敏怎么办 9个月宝宝腹泻怎么办 9个月宝宝拉肚子怎么办 5个月宝宝拉肚子怎么办 九个月大宝宝拉肚子怎么办 九个半月的宝宝拉肚子怎么办 9个月婴儿拉稀怎么办 九个月的宝宝拉肚子怎么办 9个月宝宝拉稀水怎么办 2岁宝宝腹泻拉水怎么办 18个月宝宝拉水怎么办 2个月宝宝拉稀水怎么办 2个月的宝宝腹泻怎么办 2个月的宝宝拉稀怎么办 宝宝不喝补液盐怎么办 4个月宝宝腹泻怎么办 6个月宝宝腹泻怎么办 四个月的宝宝拉肚子怎么办 7个月婴儿便秘怎么办 宝宝9个月拉肚子怎么办 2个月宝宝拉肚子怎么办 4个月宝宝没奶怎么办 宝宝又吐又拉怎么办 冬季车放在外面怎么办 冬天车放在外面怎么办 新车被拖走了要怎么办 门钥匙拔不出来怎么办 婴儿换尿布就哭怎么办