Какой смысл в указателях const?
Я не говорю о указателях на значения const,но сами указатели const.
Я изучаю C и C++ за пределами самого основного материала, и только до сегодняшнего дня я понял, что указатели передаются по значению в функции, что имеет смысл.
Это означает, что внутри функции я могу сделать скопированный указатель на какое-то другое значение, не затрагивая исходный указатель от вызывающего объекта.
Итак, какой смысл иметь заголовок функции, который говорит:
void foo(int* const ptr);
внутри такой функции вы не можете заставить ptr указывать на что-то еще, потому что это const, и вы не хотите, чтобы он был изменен, но такая функция:
void foo(int* ptr);
делает работу так же хорошо! потому что указатель копируется в любом случае и указатель в вызывающем абоненте не влияет, даже если вы измените копию. Так в чем же преимущество const?
Comments