in reply to Potentially useful code fragment for you JAPHer's

The 'cute' version rather famously doesn't work. It obviously fails for floating-point numbers, references, objects, and soforth. It also fails in Perl when x and y are strings---try it with $x="foo" and $y = "y" for example.

Even for integers, the value is specifically not defined by the C standard---the variable x is modified twice without an intervening sequence point, which is forbidden, and if you do it, you are not writing C. Different compilers can (and do) produce different results for this kind of expression. It might work in Perl, but the documentation doesn't say so.

See the comp.lang.c FAQ list for more details about this 'cute trick'.