逗號表達式

   

         逗號表達式的語法爲:
   表達式1,表達式2,...表達式n
  C++順序計算表達式1,表達式2,……,表達式n的值。例如:
    int a,b,c;
    a=l,b=a+2, c=b+3;

  由於按順序求值, 所以能夠保證b一定在a賦值之後, c一定在b賦值之後。該逗號表 達式可以用下面3個有序的賦值語句來表示:
    a=1;
    b=a+2;
    c=b+3;

  逗號表達式是有值的,這一點是語句所不能代替的。逗號表達式的值爲第n個子表達 式的值,即表達式n的值。例如:
    int a,b,c,d;
    d=(a=1,b=a+2,c=b+3);
    cout<<d<<endl;

  輸出結果爲:
    6
  上例中輸出的結果d即爲c的值。
  逗號表達式還可以用於函數調用中的參數。例如:
    func(n,(j=1,j+4),k);
  該函數調用有3個參數,中間的參數是一個逗號表達式。括號是必須的,否則,該函數有4個參數了。逗號表達式作爲值的形式,可以用於幾乎所有的地方。
  C++中,如果逗號表達式的最後一個表達式爲左值,則該逗號表達式爲左值。例如:
    (a=1,b,c+1,d)=5; //ok:即d=5
  ->在C中,逗號表達式是不能作左值的,所以 “(a=1,b,c+1,d)=5;”將通不過編譯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章