Please explain the comma operator in this program

c, comma-operator

Solution

The `,` operator evaluates a series of expressions and returns the value of the last.

`c=a,b` is the same as `(c=a),b`. That is why c is 10

`c=(a,b)` will assign the result of `a,b`, which is 20, to `c`.

As Mike points out in the comments, assignment (`=`) has higher precedence than comma

Problem

Please explain the output of this program: ``` int main() { int a,b,c,d; a=10; b=20; c=a,b; d=(a,b); printf("\nC= %d",c); printf("\nD= %d",d); } ``` The output which I am getting is: ``` C= 10 D= 20 ``` My doubt is what does the "," operator do here? I compiled and ran the program using Code Blocks.

Original source

Related problems