Re: Devious
What you have is an array of int containing the values of Unicode characters with values like U+0E0053 (first one), putchar() puts a byte eg 0x53 which is 'S' - the start of 'Season'. The top bits (0x0E00) are ignored as being more than can be stored in a byte.
It increments in the int array until it outputs U+0E002E (0x2E is '.') followed by U+200A (0x0A is newline) and then NUL which putchar() returns thus stopping the loop.
This is all output by after 'main {' having U+0E0041 which is the 'grill' macro (somewhat deviously). This is not visible in most text editors as it has a character value U+0E0041.
Why the squares from 1 .. 10 is not output is because after the U+0E0041 (after 'main {') is another U+0E0041 which expands to ';while(putchar(*salmon++))'. This outputs another NUL byte, which putchar() returns as condition to while(); this being false the body of the while loop never happens.
I suspect that this will not work on a big endian machine (Intel/AMD are little endian).
It might need a tweak if sizeof(int) is not 4.
Phew!