2017-08-10 4 views
-6

long i, b = get();2つの変数をカンマで区切って宣言しますか?

long i; long b = get();

または

long b = get(); long i = b; に等しいですか?

私はそれはあなたが速いSOに尋ね、その後しようとすることによってそれを見つけるだろう

long i; 
long b = get(); 

最初のオプションであるC

+1

https://stackoverflow.com/questions/52550/what-does-the-comma-operator-do同じである有し – saygins

+1

なぜあなたは 'long i = b; 'がそこにあると思いますか? –

答えて

3

に全く新たなんです。

オペレータ,と呼ばれています。

この場合、両方の式が評価されますが、秒の値だけが返されます。

int x = 5; 

while (--x, x > 0) 
{ 
    printf("%d,", x); 
} 

出力

4,3,2,1, 

このコードは

--x; 
while (x > 0) 
{ 
    printf("%d,", x); 
    --x; 
} 
+0

'long i、b = get();'と 'それは演算子と呼ばれます。 - >いいえ、 'foo(1,2,3);よりもカンマ演算子ではありません;または' int a、b、c; 'は共通の演算子を持ちます。 'x = rand()、1;'はカンマ演算子を持ちます。 – chux

関連する問題