Zdecydowanie nie masz zielonego pojęcia co robisz ;)
char* to jest nic innego jak wskaźnik na typ char - nie mniej, nie więcej!
char *napis = "whatever"; -> w tym wypadku napis jest wskaźnikiem do miejsca w pamięci gdzie znajduje się tekst whatever. Literały w C++ są stałe - próba ich zmiany to zło.
Zrobienie czegoś takiego:
char *napis1 = "tekst";
char *napis2 = "tekst";
wcale nie oznacza, że tekst będzie w różnych miejscach w pamięci - najprawdopodobniej będzie w jednym - czyli oba wskaźniki będą pokazywały na to samo.
Jeżeli chcesz edytować to musisz zrobić coś w tym stylu:
char napis1[] = "jakis tekst";
char napis[20] = "inny tekst";
Jak przed zobaczeniem wyrazu nie znasz jego rozmiaru to trzeba sobie to samemu napisać - alokacja odpowiedniej ilości pamięci, ewentualne kopiowanie itd.
To tyle jeżeli chodzi o klasyczne c-stringi, a teraz dzieje się magia ;) : zapoznaj się z klasą i biblioteką std::string, które już realizują wszystko co jest potrzebne.
string str1 = "jeden";
string str2, str3;
str2 = " i dwa";
str3 = str1 + str2;
cout << str1 << "\n" << str2 << "\n" << str3 << endl;