здесь, в приведенном выше фрагменте, строка 2: мы не увеличиваем переменную массива, однако извлекаем значение 1-го индексированного элемента в массиве, используя адрес массива.

ю, что не безопасно менять адрес указателя, если он лежит в куче, потому что освобождение его позже вызовет некоторые проблемы, но безопасно ли это делать, если указатель объявлен в стеке?

Я говорю о чем-то вроде этого:

char arr[] = "one two three";
arr++;
//or arr--;

Надеюсь, я понял это правильно, обратившись к массиву символов в качестве указателя.

Ответы на вопрос(5)

Ваш ответ на вопрос