int i = 0; int number = i; Console.WriteLine(i);//0 Console.WriteLine(number);//0 number = i++; Console.WriteLine(i) ;//1 Console.WriteLine(number);//0 number = ++i; Console.WriteLine(i);//2 Console.WriteLine(number);//2
嗯,c++下的asm看++i要快些。 我还没看il的代码,c#下不了解。一般还是推荐++i吧。
int i = 0; byte[] aa = new byte[100]; while (i< 100) { aa[i++] = 2; }这里边用i++还是用++i是有区别的
i++是用了再加
++i是加了再用
而 a = ++i,相当于 i=i+1; a = i;
而 a = i++,相当于 a = i; i=i+1;
不过我习惯上能++i的地方不i++.
原因无它,C++下从产生的asm看++i要快些.
不管在哪里,都是有区别的,
关键是看你怎么用。如果单单只是++i和i++则在哪里都是一样,如果
a=++i;
a=i++;这样,就有区别了,如果++的变量是在表达式里,就有区别了一个是加了之后取值,一个是取值了之后加也就是如果
i=1;
a=++i=2;i=1;
a=i++=1;
int number = i;
Console.WriteLine(i);//0
Console.WriteLine(number);//0 number = i++;
Console.WriteLine(i) ;//1
Console.WriteLine(number);//0 number = ++i;
Console.WriteLine(i);//2
Console.WriteLine(number);//2
我还没看il的代码,c#下不了解。一般还是推荐++i吧。
byte[] aa = new byte[100];
while (i< 100)
{
aa[i++] = 2;
}这里边用i++还是用++i是有区别的