Some people write
for (int i=N; i-->0; ) doSomething(i);
instead of
for (int i=N-1; i>=0; --i) doSomething(i);
for backward loops. The --> "operator"1 looks very confusing at the first glance, but it's trivial:
i-->0 simply parses as (i--)>0, and once you get it, you see it immediately.
The main disadvantage is the strange look. The advantage is that you'll get it always right (unlike the more verbose version offering the possibility to forget something, which really happened to me a couple of times).
What do you think about using the --> "operator"?
1First time I saw the funny term in a comment to this question today.

--iandi--translate into so being explicit about what's being tested and what's being decremented or increment is a much better approach. Your way just adds extra cycles to parsing the code instead of understanding what algorithm is being implemented. – davidk01 Apr 26 '11 at 9:28i = i - 1. We could start discussing if knowing=and-is a trivial detail. – maaartinus Aug 17 '11 at 11:13