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?