Code:int main() { int i = 1, j = 1, k = 1; printf("%d ", ++i || ++j && ++k); printf("%d %d %d ", i, j, k); return 0; } For the first printf statement the output is 1. The second statement's output is 2 , 1, 1. I thought the results would have been: First statement 1. Second statement 2, 2, 2. Can someone please explain how this works?