可能性の重複:
When all does comma operator not act as a comma operator?コンマ演算子とカンマ区切り文字
は(、)演算子としてカンマ振る舞うんとするとき、それはセパレータとして振る舞うんと結果は何ですか?可能であれば、両方の例をあげてください。
可能性の重複:
When all does comma operator not act as a comma operator?コンマ演算子とカンマ区切り文字
は(、)演算子としてカンマ振る舞うんとするとき、それはセパレータとして振る舞うんと結果は何ですか?可能であれば、両方の例をあげてください。
コンマは関数呼び出し、関数宣言、初期化子と変数宣言におけるセパレータとして振る舞う:
a = 2, b = 3;
c = (doSomething(), doSomethingElse(), result());
:対照的
f(a, b);
int a[] = {2, 3, 4};
int c = 2, d = 3;
別のステートメントに使用される場合、それはコンマ演算子として振る舞います
結果は、右端のオペランドの値であり、実行順序は、未定義の関数引数の評価順序とは異なり、左から右になることが保証されています。
他の場合があります: 'int a = 2、b = 3;'は 'a = 2、b = 3;'とは異なります。 –
@David:私の答えを更新しました。 –
まだ...リストにはすべてが含まれているわけではありません。私はすべてのことが正しかったとしても、それが脇に置かれていてもupvoteすることはできません。まず、@Alsで示されたケースのいくつかが答える(なぜアップフォースがないのですか?) –
カンマ(、トークンによって表される)コンマ演算子は、その最初のオペランドを評価し、結果を破棄し、バイナリ演算子であるOperator
として、それは、この値は第二オペランドとリターンを評価します(タイプを入力してください)。コンマ演算子は、C演算子の中で最も低い優先順位を持ち、シーケンスポイントとして機能します。
例:関数を呼び出す
/int i = (5, 10); /* 10 is assigned to i*/
コンマ演算子の主な用途は、側次のような状況で効果を生成することです。
コンマSeparator
としてコンマセパレータとして作用します。
例:
int a = 1,
b = 2;
void fun(x, y);
他の例:
void fun(f1(), f2());
基本的には、式は(式のリストとは対照的に)必要とされることをどこでもオペレータとして振る舞います。
重複:http://stackoverflow.com/questions/3128346/when-all-does-comma-operator-not-act-as-a-comma-operator; http:// stackoverflow。com/questions/54142/c-comma-operator;だけでなく、。 –