Question: The following code segment get an output of 32, I am kind of confusing why?

```
 int i=(j=4,k=8,l=16,m=32); printf(“%d”, i); 

```

Answer: 
Start reading inside the first set of parentheses.

The comma operator evaluates each of several expressions subsequently. It returns the return value of the last expression - in this case, it is 32, because the return value of an assignment is the value assigned.

<http://en.wikipedia.org/wiki/Comma_operator>
The [comma operator](http://en.wikipedia.org/wiki/Comma_operator) is left associative.

It evaluates `j=4` followed by `k=8`, followed by `l=16` and finally `m=32` and returns 32. Hence i gets the value of `32`.