
ПТСПЦУВСБ / 23. Объявление и использование указателей в С
.docx23. Объявление и использование указателей в С.
Указатель (англ. pointer) это переменная, хранящая адрес переменной. Часть задач
не может быть решена без использования указателей, некоторые задачи могут быть
решены с помощью указателей более эффективно. В частности, указатели необходимы
для создания динамических переменных, построения специальных структур данных,
например, связанных списков, эффективной обработки больших блоков данных (передача
указателей на массивы в подпрограммы), взаимодействия с периферийным
оборудованием и других задач.
ЭВМ обрабатывает указатель как целочисленную беззнаковую переменную (обычно,
2 или 4 байтную).
Указатели в C объявляются с помощью символа “*”, который ставят перед именем
переменной. Например, указатель на переменную типа char: char *pc;, на
переменную типа int: int *pi;. Используют также нетипизированный указатель
void *p;, который хранит адрес блока данных произвольного размера в ОЗУ. В
конечном счете, обычно, с нетипизированным указателем используют операцию явного
приведения типа (см. листинг 4.2).
Для работы с указателями язык С предлагает 2 унарных оператора: “&” – оператор
взятия адреса и “*” – оператор косвенной адресации или оператор разыменование (англ.
dereferencing). Пример использования типизированных указателей представлен на
рис. 4.5.