Do not confuse memory locations with the contents of memory locations. If ptr is a pointer, its value is the address of a memory location; "'ptr accesses this memory location so its value is what is stored at that location. Both ptr++ and ("ptr)++ are valid (if ptr is bound to an integer type), but the first increments the address in ptr, while the second increments the contents of the memory location at that address.