freeman писал(а):В языке С есть сложные конструкции, типа: "указатель на указатель" ... А есть ли нечто подобное в freepascal? И раз уж на то пошло, то кто-нибудь может объяснить, каковы плюсы таких нагромождений? ... зачем нужны такие сложные указатели?
В C указатель -- один из необходимых типов, на котором строится работа с более сложными типами -- строками, массивами. Поэтому двойные указатели применяются как минимум для двух целей:
1) Передача по ссылке обычного указателя, например в функцию. Тогда внутри функции можно просто перенацелить указатель "второго уровня" с одного указателя "первого уровня" на другой, без операций с содержимым. Например, подменить одну строку другой.
2) Многомерные типы, например массив строк. Массив в C = указатель на первый элемент, строка = указатель на первый символ. Массив строк = указатель на указатель на первый символ первой строки.
В Pascal работа с указателями полностью поддерживается, как минимум для взаимодействия с библиотеками на C, но чаще всего есть собственные более высокоуровневые конструкции, которые оборачивают работу с указателями и выделение памяти, чтобы мы могли заниматься более важными вещами. Например, для массива строк есть TStringList.