Указатели на указатели.

В языке Си можно описать и переменную типа «указатель на указатель». Это ячейка оперативной памяти, в которой будет храниться адрес указателя на какую либо переменную. Признак такого типа данных – повторение символа «*» перед идентификатором переменной. Количество символов «*» определяет уровень вложенности указателей друг в друга. При объявлении указателей на указатели возможна их одновременная инициализация. Например:

int y=5;

int *p1=&y;

int **pp1=&p1;

int ***ppp1=&pp1;

Теперь присвоим целочисленной переменной y новое значение, например 10. Одинаковое присваивание произведут следующие операции:

y=10; *p1=10; **pp1=10; ***ppp1=10;

Для доступа к области ОП, отведенной под переменную y можно использовать и индексы. Справедливы следующие аналоги:

*p1 p1[0] **pp1 pp1[0][0] ***ppp1 ppp1[0][0][0]