1. X++題目如下:static void Main(string[] args){ int x = 5; int y = 10; y += x++; Console.WriteLine("x=" + x.ToString() + " y=" + y.ToString());}答案是多少呢?x=6,y=15現在修改一下代碼,如下:static void Main(string[] args){ int x = 5; int y = 10; x++; y += x; Console.WriteLine("x=" + x.ToString() + " y=" + y.ToString());}答案變成了x=6,y=16為什么呢?其實記住基本原理就可以無敵了:X++ will return its old value and then increment the value.下面這道題想必大家都知道答案了。static void Main(string[] args){ int x = 5; int y = 10; x = x++; Console.WriteLine("x=" + x.ToString() + " y=" + y.ToString());}根據上面原則,x++增加x的值,但返回原來的值,所以x=5.那么下面應該返回多少呢?static void Main(string[] args){ int x = 5; int y = 10; x = x++; x = x++; Console.WriteLine("x=" + x.ToString() + " y=" + y.ToString()); Console.Read();}有人有點暈了吧?是不是應該等于6呢?實際答案是x=5.再看看上面原理,自己理解下。static void Main(string[] args){ int x = 5; int y = 10; x++; Console.WriteLine("x=" + x.ToString() + " y=" + y.ToString());}這個x等于多少呢?因為x++會加1,所以x=6.再加多一行x++呢?如下:static void Main(string[] args){ int x = 5; int y = 10; x++; x++; Console.WriteLine("x=" + x.ToString() + " y=" + y.ToString());}x就乖乖遞增了,現在等于7.2. ++X現在變換一下,試試++x吧。static void Main(string[] args){ int x = 5; ++x; Console.WriteLine("x=" + x.ToString());}現在x=6.那么加上等號呢?static void Main(string[] args){ int x = 5; x = ++x; Console.WriteLine("x=" + x.ToString());}這次不是5了哦。x還是等于6.為什么呢?++X first increment the value, then return this value. 所以++X會返回新值。現在考考大家,下面的x等于多少呢?static void Main(string[] args){ int x = 5; x += x++; Console.WriteLine("x=" + x.ToString());}正確答案是10.3. x += x + x++ VS x += x++ + xhttp://blogs.msdn.com/b/lucabol/archive/2004/08/31/223580.aspx再看看下面的代碼,static void Main(string[] args){ int x = 5; x += x + x++; Console.WriteLine("x=" + x.ToString());}答案是15還是16呢?相信有不少同學認為是16,實際上正確答案是15.別看x+= x+x++很復雜,有點繞,其實它等于x += x + x. 這下同學們明白了。那下面的答案應該是多少呢?static void Main(string[] args){ int x = 5; x += x++ + x; Console.WriteLine("x=" + x.ToString());}大家說那還不是一樣么?x+=x+x啊,還是15.這次又錯啦。答案是16哦。傻眼了吧?到底是怎么回事呢?繞來繞去繞暈了啊。我們來仔細解析一下吧:x = x + x++;1. x=(x) + x++ -->根據從左到右的運算法則。第一個x即用括號括起來的x先進行運算,x本來為5,所以x=5 + x++2. x= 5 + (x)++ -->這里括起來的x為5, 所以x=5+ (5)++3. x= 5 + (5)++ -->經過x++運算,x變為6,但是x++返回舊值,還是5,所以x= 5+54. x= 5+5 --> 返回105. x += x+ x++ --> 即 x+= 10, 即 x= x+10=15所以這里x=15.x=x++ + x;1. x=(x)++ + x --> x= (5)++ + x2. x = (5++) + x --> x = 6 + x --> 返回11所以最后x+= x++ + x -> 即 x+= 11, 即 x= x+11=16為16.4. x = x + ++x VS x = ++x + x見下面代碼:static void Main(string[] args){ int x = 5; x = x + ++x; Console.WriteLine("x=" + x.ToString()); Console.Read();}結果為11static void Main(string[] args){ int x = 5; x = ++x + x; Console.WriteLine("x=" + x.ToString()); Console.Read();}結果為12