Prefer prefix ++/-- operators for non-primitive types

Pre-increment/decrement can be more efficient than post-increment/decrement. Post-increment/decrement usually involves keeping a copy of the previous value around and adds a little extra code.
Fix immediate variable reassignment