Указатель хранит адрес переменной. Через него можно менять данные вызывающей функции, работать с массивами и выделять память во время работы программы — но и ошибиться так, что программа упадёт или будет «течь».
Что нужно знать
&x— адрес переменной,*p— значение по адресу (разыменование).p + 1сдвигается на один элемент своего типа; разность указателей — число элементов между ними.- Имя массива — адрес первого элемента:
a[i]равносильно*(a + i). - Передача через указатель позволяет функции изменить переменную вызывающего кода.
- Динамическая память:
new/deleteдля одного объекта,new[]/delete[]для массива. - Нужна, когда размер известен только во время работы программы.
nullptr— «никуда не указывает»; его нельзя разыменовывать.- Объявление
int *p, q;делает указателем толькоp, аqостаётся обычным int.
Где чаще всего ошибаются
- Забывать
delete— утечка памяти. - Обращаться к памяти после
delete. - Освобождать массив через
deleteвместоdelete[].
Проверить себя
По этой же теме курса есть проверочная работа из 15 заданий на 30 минут. Проверка автоматическая, результат виден сразу — и по работе целиком, и по каждой теме.
Программирование · 10–11 классы · Указатели и динамическая память