Когда вы назначаете что-то указателю, например ptr1
или ptr2
. вы не меняете значение того, что там хранится, вы просто меняете то, на что они указывают.
Когда вы говорите:
ptr2 = ptr1 + 6;
Вы указываете ptr2
на 6-й элемент строки ptr1
. Тогда вы говорите:
ptr2 = "Test!\n";
Это означает, что ptr2
теперь указывает на новую, другую строку в другом месте памяти, которая содержит "Test!\n"
. Итак, у вас есть это:
ptr -------> "Hello World\n"
ptr2 -------> "Test\n"
Теперь, когда вы печатаете их, вы получаете:
Test!
Hello World