Quot;ACOUY" // специальность
}; С помощью массива указателей можно инициализировать строки различной длины. Каждый элемент массива ptr[] указывает на одномерный массив символов (строку) независимо от других указателей. В языке программирования С предусматриваются ситуации, когда указатели указывают на указатели. Такие ситуации называются многоуровневой адресацией. Пример объявления указателя на указатель: int **ptr2; В приведенном объявлении **ptr2 – это указатель на указатель на число типа int. При этом наличие двух звездочек свидетельствует о том, что имеется двухуровневая адресация. Для получения значения конкретного числа следует выполнить следующие действия: int x = 88, *ptr, **ptr2; ptr = &x; ptr2 = &ptr; printf("%d", **ptr2); В результате в выходной поток (на дисплей пользователя) будет выведено число 88. В приведенном фрагменте переменная *ptr объявлена как указатель на целое число, а **ptr2 – как указатель на указатель на целое. Значение, выводимое в выходной поток (число 88), получается в результате операции разыменования указателя **ptr2. В многомерных массивах указатели содержат адреса элементов массива построчно. Рассмотрим пример двухмерного целочисленного массива М размера 3 × 5, т. е. состоящего из 3 строк и 5 столбцов, и определим указатель: int M[3][5]= {{1,2,3,4,5},{–6,–7,–8,–9,–10},{11,12,13,14,15}}; int *ptr; Элементы массива (по индексам) располагаются в ячейках памяти по строкам в следующем порядке:
|