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

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

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

2019-11-11 00:32:18
字體:
來源:轉載
供稿:網友
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
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 建始县| 桂林市| 盐山县| 奎屯市| 达拉特旗| 广宁县| 罗甸县| 保山市| 庆云县| 罗田县| 江川县| 祁连县| 西丰县| 射阳县| 西平县| 安阳市| 正阳县| 平顶山市| 盱眙县| 阜城县| 安顺市| 龙游县| 顺义区| 洪湖市| 揭东县| 武邑县| 沛县| 大同县| 集贤县| 慈利县| 浦江县| 临海市| 元江| 卓尼县| 曲水县| 定西市| 福州市| 叙永县| 称多县| 敦煌市| 宾川县|