青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

兔子的技術博客

兔子

   :: 首頁 :: 聯系 :: 聚合  :: 管理
  202 Posts :: 0 Stories :: 43 Comments :: 0 Trackbacks

留言簿(10)

最新評論

閱讀排行榜

評論排行榜

轉自:http://c.chinaitlab.com/cc/basic/200908/790961.html

逗號操作符?C++里有逗號操作符么?

    不少C++ newbie都會問到這問題,大家對+-*/自然是認識的了,對其他的%!&|之類的也不覺得陌生,但是逗號操作符?可能有一半的人會說不清楚它到底是干啥的。

    其實,我們是經常會用到逗號操作符的,但是并不是所有代碼里出現的逗號都是逗號操作符。

    讓我們先從一個類的示例代碼開始:

  1:
 2:  class mynum
 3:  {
 4:  public:
 5:      mynum(double ndb,...)
 6:      {
 7:          //init with arguments
 8:      }
 9:  };
10:  class someclass
11:  {
12:      someclass():
13:          num(3,4)
14:              ,a(0)
15:              ,b(0)
16:              ,c(15)
17:      {
18:          int i,j;
19:          i=1,2; //int x=1,2;
20:          for(;b<10;++b,--c)
21:          {
22:              ++a;
23:          }
24:      }
25:      mynum num;
26:      int a;
27:      int b,c;
28:  };

    在這段代碼里,逗號在5,13-16,18-20,27行都出現了。

    現在先讓我們來看看逗號操作符是啥意思:

    一個包含逗號的表達式首先計算逗號左邊的表達式,然后計算逗號右邊的表達式;整個表達式的結果是逗號右邊表達式的值。

    然后我們看看上面的代碼:

    第5行是在mynum類的構造函數里出現的逗號,只是用來區分開第一個double類型的參數和后面的可變參數。這是一個特例,如果在構造mynum對象的時候,本來是要傳入3.4作為第一個參數的,結果不小心把小數點變成了逗號的話,3.4就變成了兩個參數3和4——比如在第13行的情況。類似這樣的情況編譯器不會報錯,程序也能運行,但是mynum類里的成員變量可能就因為構造函數傳入的變量值變化而導致程序運行結果完全不一致了。這兩個逗號都不是逗號操作符了。

    第14,15,16行的逗號,也不是逗號操作符。這三個逗號只是用來間隔構造函數的成員變量初始化列表。

    第18行的int i,j;是大家都很常用的變量聲明的語句,逗號在這里,也只是起了一個間隔變量聲明的作用,也不是逗號運算符。

    第19行的逗號,如果不認識逗號操作符的話,一定會認為這肯定是寫錯了!其實這正是逗號操作符了。讓我們看看,經過i=1,2;這個語句后,i 的值應該是多少呢?按照之前逗號操作符的定義,我們好像可以很輕松的得出i=2.然而,這個答案是錯的!你在得出錯誤答案的時候,忽略了一個重要的因素——運算符優先級!由于=號的優先級更高,所以i=1,2;這個語句相當于(i=1),2; ,如果要得到期望的2,我們應該這樣來寫i=(1,2);。下面的代碼可以驗證這個說法的(注意第3行是無意義代碼,但是可不是錯誤代碼哦!)
 1:  int i,j;
2:  i=1,2;
3:  3,4;
4:  j=(1,2);
5:  printf("%d\n%d\n",i,j);

    繼續看第一份代碼里的第20行,這是一個for循環代碼。這里的逗號,也是逗號操作符哦。其實for循環也是逗號操作符經常出現的地方哦。for循環里只能寫一個表達式,而逗號表達式這個時候就可以讓你完成兩個甚至多個表達式的計算。比如“for(;b<10;++b,——c)”,++b和——c就會在每次循環中都被執行到。

    第27行就無須多說了。也就是一普通的變量聲明語句,這里的逗號也不是逗號操作符的。

    總的來說,逗號操作符并不是一個非常常用的操作符,它只在某些特定的上下文環境里會有很好的效果,同時,在編碼中還要非常小心錯誤的輸入的逗號引發錯誤的問題。

    比如逗號和括號就會引發一些潛在問題,如果在編碼的時候一疏忽就會產生一些難以追查的隱藏bug,只有遵守一些既定的編碼規范,養成良好嚴謹的編碼習慣,才有助于避免一些諸如此類的問題出現。看看下面的代碼:
  1:  int myadd(int i,int j,int k)
 2:  {
 3:      return i+j+k;
 4:  }
 5:  int myadd(int i,int j)
 6:  {
 7:      return i+j;
 8:  }
 9:
10:  int main()
11:  {
12:
13:      for(int x=0;x<9;++x)
14:      {
15:          printf("%d",myadd((2,3),4));
16:      }
17:  }

    由于在第15行,錯誤的添加了括號(在實際編碼中這樣的情況太常見了),結果導致整個的輸出全錯了!因為(2,3)這個逗號表達式的返回值是3,所以15行相當于是myadd(3,4)了!

    so,一定要記住啦,小心,小心,再小心!^_^

posted on 2009-09-15 14:32 會飛的兔子 閱讀(238) 評論(0)  編輯 收藏 引用 所屬分類: C++及開發環境
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美黄污视频| 久久在线视频在线| 国产一区二区中文| 国产精品永久免费视频| 国产精品hd| 国产欧美在线| 亚洲国产婷婷香蕉久久久久久| 在线观看91久久久久久| 在线观看欧美成人| 一区二区三区av| 欧美在线视频免费播放| 毛片av中文字幕一区二区| 欧美国产第二页| 亚洲少妇自拍| 久久一区二区三区四区五区| 欧美激情91| 国产日本欧洲亚洲| 亚洲激情电影中文字幕| 亚洲男女自偷自拍图片另类| 麻豆乱码国产一区二区三区| 一区二区欧美在线| 久久久久天天天天| 欧美视频日韩视频| **性色生活片久久毛片| 亚洲午夜小视频| 久久亚洲综合色一区二区三区| 亚洲人成免费| 欧美在线中文字幕| 欧美特黄一级| 亚洲精品美女| 久久午夜视频| 午夜久久电影网| 欧美午夜精品一区| 日韩一区二区精品视频| 久久午夜色播影院免费高清| 亚洲无线一线二线三线区别av| 蜜桃久久av| 国产一区二区三区最好精华液| 亚洲一级黄色| 亚洲三级免费电影| 久久伊人亚洲| 狠狠色综合色区| 久久久久9999亚洲精品| 亚洲一区网站| 国产精品女主播一区二区三区| 99re6这里只有精品| 欧美成人黄色小视频| 欧美一区二区播放| 国产毛片精品视频| 欧美在线视频免费播放| 亚洲欧美在线免费| 午夜日韩在线观看| 蜜臀av国产精品久久久久| 日韩视频一区二区三区在线播放免费观看 | 亚洲国产婷婷香蕉久久久久久99| 欧美一区高清| 亚洲一区二区三区免费观看 | 亚洲免费在线视频一区 二区| 欧美激情视频网站| 久久久久国产成人精品亚洲午夜| 国产麻豆91精品| 香蕉av777xxx色综合一区| 在线亚洲国产精品网站| 国产精品国产亚洲精品看不卡15| 亚洲色诱最新| 在线中文字幕不卡| 国产精品黄色在线观看| 中文在线一区| 一区二区精品在线| 国产精品无人区| 久久久久九九九| 久久在线免费观看视频| 亚洲国产一区二区三区青草影视| 欧美福利视频在线| 欧美精品一区二区三区久久久竹菊| 最新中文字幕亚洲| 91久久精品一区| 欧美日韩亚洲视频一区| 亚洲一区一卡| 欧美一区二区三区精品电影| 国产一区久久久| 欧美激情一区二区在线| 欧美三级特黄| 久久久蜜桃精品| 欧美成人免费在线观看| 亚洲天堂av在线免费| 亚洲欧美日韩在线| 亚洲国产精品久久久久秋霞影院| 亚洲精品欧美| 国产精品白丝av嫩草影院| 久久影视三级福利片| 欧美激情一区二区三区高清视频| 亚洲在线一区| 免费在线观看成人av| 亚洲视频第一页| 久久精品主播| 亚洲视屏一区| 久久久久久色| 亚洲欧美日韩在线观看a三区| 久久狠狠亚洲综合| 亚洲网站在线观看| 久久久亚洲成人| 亚洲欧美日韩直播| 欧美电影在线免费观看网站| 欧美一区二区三区的| 午夜精品美女久久久久av福利| 欧美激情一区二区三区成人| 国产精品毛片在线| 欧美福利在线| 国产精自产拍久久久久久蜜| 蜜桃av一区二区三区| 国产精品久久久久久久久| 欧美88av| 激情亚洲网站| 亚洲欧美日本日韩| 亚洲美女啪啪| 欧美jjzz| 免费在线欧美视频| 国产午夜精品美女毛片视频| 欧美激情精品久久久久久免费印度| 国产日韩精品在线观看| 这里只有精品丝袜| 亚洲精品影视在线观看| 久久久蜜桃精品| 久久久久九九九| 国产精品视频九色porn| 亚洲每日在线| 在线一区二区三区做爰视频网站| 欧美高清视频| 亚洲国产精品毛片| 最新成人av网站| 欧美国产日韩二区| 日韩视频在线免费| 亚洲一区二区三区四区视频| 欧美日韩岛国| 一区二区日本视频| 亚洲影院免费观看| 国产精品乱码| 欧美一区免费| 免费不卡在线观看| 亚洲娇小video精品| 美女精品在线| 亚洲免费久久| 午夜视频一区在线观看| 国产一区二区三区观看| 久久久久久一区| 亚洲国产1区| 亚洲午夜激情网页| 国产精品久久久亚洲一区| 亚洲欧美日韩视频二区| 久久精品国产v日韩v亚洲 | 欧美黑人国产人伦爽爽爽| 亚洲国产成人在线| 欧美激情在线有限公司| 一区二区激情视频| 久久久精品网| 亚洲精品一线二线三线无人区| 欧美日韩国产成人在线| 亚洲永久视频| 欧美夫妇交换俱乐部在线观看| 日韩系列欧美系列| 国产精品自拍小视频| 久久青草久久| 一本久久精品一区二区| 久久久精品一区二区三区| 亚洲人体偷拍| 国产欧美短视频| 欧美不卡视频一区| 亚洲一区二区三区精品动漫| 久久综合精品国产一区二区三区| 亚洲另类在线视频| 日韩视频在线观看一区二区| 欧美一区二区三区免费大片| 欧美天天综合网| 久久精精品视频| 亚洲精品黄网在线观看| 久久爱www.| 一区二区三区 在线观看视频| 国内偷自视频区视频综合| 欧美久久电影| 久久夜精品va视频免费观看| 亚洲视频www| 亚洲国产精品va在线看黑人动漫 | 久久久久久一区二区三区| 亚洲免费av网站| 国产亚洲欧美日韩日本| 欧美肥婆在线| 久久久久久成人| 午夜精品久久久久久| 亚洲免费播放| 亚洲电影免费在线| 毛片一区二区三区| 久久夜色精品国产亚洲aⅴ| 亚洲欧美中日韩| 亚洲一区二区精品视频| 亚洲六月丁香色婷婷综合久久| 国产一区二区三区久久精品| 国产精品成人免费| 欧美日韩亚洲91| 欧美日韩视频第一区|