C++のカンマ演算子

1113 ワード

カンマ演算子(,)は、C++言語演算子の中で最も優先度の低い演算子であり、結合順序は左から右であり、順番に値を求めるために使用されます(最後のカンマの後の式の値は式全体の値として使用されます).
これはまだ冷たい感じがして、以前は知らなかったので、普段もあまり使われていませんが、これを探究するのは面白い過程です.
以下はいくつかの退屈な小さな実験です.
  • カンマ+定数文の戻り値
    int a = 1;
    a = (1, 2, 3);//a = 3
    
  • カンマ+代入文の戻り値
    int a = 1;
    int b;
    a = (b = 2, b += 2);//b = 4, a = 4,      b += 2 b = 2        b
    
  • カンマ+自己増減演算子の戻り値I
    int a = 10;
    int b = 2;
    a = (a++, b = 2);//             ,  a = 2
    
  • カンマ+自増/減演算子の戻り値II
    int a = 10;
    int b = 2;
    b = (a++, a++);//   a++       ,  b = 11
    
  • カンマ+自増/減演算子の戻り値III
    int a = 10;
    a = (a--, --a);//a = 8
    
  • カンマ+自増/減演算子の戻り値IV
    int a = 10;
    int b = 2;
    a = (b += a++, (a++) + b++);//a = 24, b = 13, ((a++)+ b++)   (11 + 12),     a  a    24
    
  • 最後の実験
    int a[3] = { 0,0,0 };
    int b = 0;
    a[++b] = (a[b++] = 2, b++);
    for (auto num : a)
    {
          cout << num << ' ';
    }
    //              ,b++ ++b     ,           ,              
    
    は皆さんに役に立つことを望んでいます.