According to Draft C++11 (PDF) 2.5 Preprocessing tokens, clause 3 and Draft C11 (PDF) 6.4 Lexical elements, clause 4, the compiler parses the longest possible sequence of characters as the next token.
This means ---
will be parsed into the two tokens --
and -
, which gives
iHoursTemp = iHoursTemp + (iZoneNew--) - iZoneOld;
This also shows, if you're unsure about precedence or parsing rules, use parenthesis to clarify the code.