C語言中文網 目錄

C語言逗號運算符(,)

逗號運算符是二元運算符:

表達式1 , 表達式2


逗號運算符確保操作數被順序地處理:先計算左邊的操作數,再計算右邊的操作數。右操作數的類型和值作為整個表達式的結果。左操作數只是為了副作用需要而被計算,它其值會被丟棄。在計算完左操作數之后,存在一個序列點,例如:
x = 2.7, sqrt( 2*x )

在上述表達式中,在 sqrt()函數被調用之前,賦值運算會首先發生。整個表達式的值是此函數的返回值。

逗號運算符的優先級是所有運算符中最低的。因此,前述例子中的表達式 x=2.7 不需要括號。然而,如果希望逗號運算的結果用于另一個賦值運算中,就需要使用括號:
y = ( x = 2.7, sqrt( 2*x ));

上述語句會把 5.4 的平方根賦值給 y。

在初始化列表或函數參數列表中的逗號是列表元素的分隔符,它不是逗號運算符。在這些地方,也可以使用逗號運算符,但必須使用括號:
y = sqrt( (x=2.7, 2*x) );

這個語句等效于前面例子的語句。逗號運算符允許將多個表達式組合成為一個表達式。這個特點使得它適用于在 for 循環頭部初始化或遞增多個變量,如下例所示:
int i; float fArray[10], val;
for ( i=0, val=0.25; i < 10; ++i, val *= 2.0 )
   fArray[i] = val;

精美而實用的網站,提供C語言、C++、STL、Linux、Shell、Java、Go語言等教程,以及socket、GCC、vi、Swing、設計模式、JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo
极速pk10开户