可能重复:
When all does comma operator not act as a comma operator?逗号运算符和逗号分隔符
什么时候逗号(,)表现为运营商,当它表现为分离而有什么后果?如果可能的话,请给两个小例子。
可能重复:
When all does comma operator not act as a comma operator?逗号运算符和逗号分隔符
什么时候逗号(,)表现为运营商,当它表现为分离而有什么后果?如果可能的话,请给两个小例子。
逗号表现为在函数调用,函数声明,初始化和变量声明的隔板:
f(a, b);
int a[] = {2, 3, 4};
int c = 2, d = 3;
与此相反,用于分离的语句时,它表现为逗号运算:
a = 2, b = 3;
c = (doSomething(), doSomethingElse(), result());
它产生的结果是其最右边的操作数的值,并且执行顺序保证从左到右,与函数参数的未定义顺序相反。
还有其他一些情况:'int a = 2,b = 3;'与'a = 2,b = 3;'不同。 –
@David:更新了我的答案。 –
还是......这份清单涵盖了一些但并非全部。即使所有内容都是正确的,因为我们不能保持一致,因为对于初学者来说,@Als中显示的一些案例会回答(为什么它没有upvotes?) –
逗号作为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://计算器。com/questions/54142/c-comma-operator;而不仅仅是。 –