Why should one not use pointer arithmetic for string length calculation, access to string elements, or string manipulation ?