And, it turns out that ambiguous expressions like this are such a bad idea that the ANSI C Standard does not require compilers to do anything reasonable with them at all.
The above code could end up printing 42, or 8923409342, or 0, or crashing your computer.