C# i++和++i的区别
核心区别
操作顺序
i++:先返回变量当前值,再自增1(表达式返回原值)
++i:先自增1,再返回变量新值(表达式返回新值)返回值类型
i++返回原值副本(右值),++i返回变量本身(左值)效率差异
简单类型无差别,复杂对象i++可能因副本稍慢
控制台测试代码
using System;
class Program
{
static void Main()
{
// 场景1:独立语句中的行为相同
int a = 5;
a++;
++a;
Console.WriteLine($"独立操作后 a 的值:{a}"); // 输出7
// 场景2:赋值时的差异
int i = 1, j = 1;
int x = i++; // x=1,i 变为2
int y = ++j; // y=2,j 变为2
Console.WriteLine($"x={x}, y={y}, i={i}, j={j}");
// 场景3:表达式中的使用
int k = 0;
Console.WriteLine(k++); // 输出0
Console.WriteLine(++k); // 输出2
// 场景4:循环中的表现
Console.WriteLine("\n循环测试:");
for (int m = 0; m < 3; m++) { Console.Write(m); } // 012
Console.WriteLine();
for (int n = 0; n < 3; ++n) { Console.Write(n); } // 012
}
}输出结果
独立操作后 a 的值:7 x=1, y=2, i=2, j=2 0 2 循环测试: 012 012
关键总结
✅ 优先使用++i:在无需旧值的场景更高效
⚠️ 避免复杂表达式:如int z = ++i + i++会导致未定义行为
💡 左值特性:++i可用于链式操作(如(++i).Method())
转载请注明出处。