C++中前置++和后置++的区别
一、前置++
先对变量进行自增操作,然后返回自增后的值。
int i = 5;
int a = ++i; // i 先变成 6,然后 a = 6
等价于:
i = i + 1;
a = i;
相较于后置++,前置++通常更高效,因为不需要存储旧值。
二、后置++
先返回变量原始的值,然后再对变量自增。
int i = 5;
int a = i++; // a = 5,然后 i 变成 6
等价于:
a = i;
i = i + 1;
由于后置++需要存储旧值,所以稍慢。
总结
对于自定义类(如迭代器等),优先使用前置 ++,因为后置版本通常会额外生成一个临时对象,效率更低。
项目 | 前置 ++ (++i) | 后置 ++ (i++) |
---|---|---|
自增顺序 | 先自增再使用 | 先使用再自增 |
返回值 | 自增后的值 | 自增前的值 |
效率 | 略优(无临时对象) | 稍低(需临时对象) |
int i = 5;
cout << "前置 ++ : " << ++i << endl; // 输出 6,i 已加 1
i = 5;
cout << "后置 ++ : " << i++ << endl; // 输出 5,i 之后变成 6
cout << "当前 i : " << i << endl; // 输出 6