The pointer points to a string literal, which is a constant that cannot be modified by the program (which is why you should be using const char* if you use a pointer). Using the array actually creates an array in memory and copies the contents of that string literal into the array. In that case it is yours to change however you'd like.

BTW, if you are using C++, you should probably be learning the C++ string class first instead of C style string like those that you are using.