前置自增(++i)先加1后返回新值,后置自增(i++)先返回原值再加1;前者在复杂类型中性能更优,推荐循环中使用++i。

在C++中,i++ 和 ++i 都是自增操作符,作用都是将变量 i 的值加1,但它们在使用时机和返回值上有本质区别。理解这一点对编写高效、正确的代码非常重要。
例如:
立即学习“C++免费学习笔记(深入)”;
<pre class="brush:php;toolbar:false;"> int i = 5; int a = ++i; // i 先变成6,然后赋值给a // 结果:i = 6, a = 6
这个过程可以理解为:
例如:
立即学习“C++免费学习笔记(深入)”;
<pre class="brush:php;toolbar:false;"> int i = 5; int a = i++; // 先把5赋值给a,然后i变成6 // 结果:i = 6, a = 5
这个过程相当于:
例如,在循环中推荐使用 ++i:
<pre class="brush:php;toolbar:false;">
for (int i = 0; i < 10; ++i) { ... }
虽然对 int 影响微乎其微,但养成习惯有助于在使用自定义类型时避免不必要的开销。
如果你只需要增加变量,不关心返回值,两者等效:
<pre class="brush:php;toolbar:false;"> i++; ++i; // 效果一样
如果用于表达式中取值,则结果不同:
<pre class="brush:php;toolbar:false;"> int i = 0; cout << i++ << endl; // 输出 0 cout << ++i << endl; // 输出 2(先加到1,再加到2)
在数组或指针操作中也很常见:
<pre class="brush:php;toolbar:false;">
int arr[] = {10, 20, 30};
int* p = arr;
int val = *p++; // 取arr[0],然后p指向arr[1]
int val2 = *++p; // 先p指向arr[2],再取值30
基本上就这些。关键记住:++i 是先加后用,i++ 是先用后加。在不需要旧值时,优先使用 ++i 更符合现代C++的效率习惯。
以上就是C++中i++和++i有什么区别_C++运算符区别与自增操作解析的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号