Часто ли вы дополнительно "защищаете" аргументы функции, делая им каст в const, например:
void Save2File(const char* const FileName);
Гарантируя тем самым, что внутри функции значение переменной изменено не будет (в примере - и адрес, и размещённые по нему данные, но интересует только "защита" адреса).
Отдельно оговорюсь: "защита" именно копируемых данных (передаваемых по значению, а не по ссылке или через указатель), т.е. от изменения которых в вызывающем коде ничего не меняется.