"You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time" — Bertrand Meyer
Some useful links.