I came across these to statements and i am not sure how they are parsed
and the output given is produced...

printf("%d",printf("%d %d",5,5)&printf("%d %d",7,7));

o/p : 5 5 7 7 3

printf(" %d %d",printf("%d %d",7,7),printf("%d %d",5,5));

o/p : 5 5 7 7 3 3

Could some one explain where the two 3 's r obtained from.
They r not random , i think its got something to do with the length of the output
but not sure.

Check following link for help on printf.
On success, the total number of characters written is returned.