Gau*_*mar 3 c++ comma-operator
可能重复:
当所有逗号运算符都不作为逗号运算符时?
什么时候逗号(,)表现为运算符?它什么时候表现为分隔符?它的后果是什么.如果可能,请为两者提供小例子.
逗号在函数调用,函数声明,初始值设定项和变量声明中表现为分隔符:
f(a, b);
int a[] = {2, 3, 4};
int c = 2, d = 3;
Run Code Online (Sandbox Code Playgroud)
相反,当用于分隔语句时,它的行为与逗号运算符相同:
a = 2, b = 3;
c = (doSomething(), doSomethingElse(), result());
Run Code Online (Sandbox Code Playgroud)
它产生的结果是其最右边的操作数的值,并且保证执行顺序是从左到右,与函数参数的未定义的评估顺序相反.