转自:https://zhidao.baidu.com/question/106961628.html
逗号表达式的语法为:
   表达式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;”将通不过编译

