国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

老問題:關于X++和++X及其X=X++

2019-11-10 23:17:36
字體:
來源:轉載
供稿:網友
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
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 伊春市| 紫金县| 龙州县| 同心县| 漾濞| 曲水县| 斗六市| 内江市| 长春市| 滨州市| 深圳市| 青阳县| 固始县| 田东县| 册亨县| 鲁甸县| 施甸县| 湘乡市| 平潭县| 苍南县| 洪洞县| 宁陕县| 长沙县| 江西省| 安西县| 东阳市| 平南县| 外汇| 博爱县| 清水河县| 昭平县| 金沙县| 新竹市| 三门峡市| 公安县| 射阳县| 师宗县| 二连浩特市| 寿宁县| 石阡县| 阿勒泰市|