Friday, April 3, 2015

Константный указатель и указатель на константу

Что скрывается под этими названиями, в целом, понятно, но как они объявляются в C++, я постоянно забываю.

Константный указатель

Константный указатель - это указатель-константа. Нельзя изменить значение указателя, но сама область памяти, на которую он указывает, может быть изменена.

char * const constPtr1;
char constPtr2[];

Т.е. присвоить другое значение переменным constPtr1 и constPtr2 не получится, так как они константы.

Указатель на константу

Указатель на константу - это указатель на неизменяемую область памяти. Нельзя изменить область памяти, на которую указывает указатель, но можно изменить значение самого указателя.

char const* ptrToConst1;
const char* ptrToConst2;

Т.е. переменным ptrToConst1 и ptrToConst2 можно присвоить другое значение, но нельзя изменить область памяти, на которую они указывают.

Константный указатель на константу

Константный указатель на константу - указатель-константа на константу. Нельзя изменить значение указателя и нельзя изменить область памяти, на которую он указывает.

const char* const constPtrToConst1;

Как запомнить?

Можно читать справа налево. Например, constPtrToConst1 это константный указатель на объект типа char, который является константой. ptrToConst1 это указатель на объект типа char, который является константой. constPtr1 это константный указатель на объект типа char.

No comments:

Post a Comment