Q:

Why does the code "x++ && y++;" work in C without a control operator?

I was looking for ways to cut down my line usage and came across this and it seems to work fine. I can't find any info on it on the web can someone explain what is going on? Assuming it would even run, I would still expect x++ to evaluate to false and therefore y would not increase in value. But it does!
#include <stdio.h>

int     main(void)
{
    int     x;
    int     y;

    x = 4;
    y = 7;
    x++ && y++;
    printf("%d\n%d", x, y);
    return (0);
}
>> 5 
   8

Edit: I have a function limit of 25 lines per function for my project this is why I have to cut down a few lines. 
Edit 2: all my code is subject to a strict syntax and format checker, the checker bans "x++,y++;" and any other multi line statement so I was just looking for a 'hack' to cut off one line from my program and had no idea why ^^ worked for me! Thanks fo all the responses!

A:

The logical operators && and || uses short-circuit evaluation.
For both the left-hand side is always evaluated. For && if the left-hand side is "true" then the right-hand side is also evaluated. For || it's the opposite, if the left-hand side is "false" then the right-hand side is evaluated.
And in C anything that is non-zero is "true". Only zero is "false".

