提一个关于++的小问题。
我用C#作了一个程序。
int i=10;
i=i+i++;
Console.WriteLine(i);
Console.ReadLine();
输出的结果是20.
我有用C做了一个
int i = 10;
i = i + i++;
printf( "i=%d\n ",i);
输出结果是21.
奇怪?#@!@!! 为什么????? C的好理解,C#的为什么是20,后面的i++没有起作用?
------解决方案--------------------i+i++
其实关键在于++的时机
C#是在运算完i+i的时候
而C++是在运算完i=i+i的时候
这就不难理解了吧。
C#计算
i + i++ = 10 + 10= 20。这个时候++,i变为11,但是马上i被赋值为20,不就这样了……
不过C不同的编译器其运算结果也是不同的。