读书人

提一个关于++的小有关问题

发布时间: 2011-12-17 23:37:33 作者: rapoo

提一个关于++的小问题。
我用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不同的编译器其运算结果也是不同的。

读书人网 >C#

热点推荐