Редактирование: Сравнение Языков Программирования
Материал из eSyr's wiki.
Внимание: Вы не представились системе. Ваш IP-адрес будет записан в историю изменений этой страницы.
ПРЕДУПРЕЖДЕНИЕ: Длина этой страницы составляет 167 килобайт. Страницы, размер которых приближается к 32 КБ или превышает это значение, могут неверно отображаться в некоторых браузерах. Пожалуйста, рассмотрите вариант разбиения страницы на меньшие части.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 307: | Строка 307: | ||
ТипУказатель = POINTER TO Тип. | ТипУказатель = POINTER TO Тип. | ||
Любая переменная-указатель может принимать значение NIL, которое не указывает ни на какую переменную вообще. | Любая переменная-указатель может принимать значение NIL, которое не указывает ни на какую переменную вообще. | ||
- | |||
- | В Modula-2 можно объявлять указатель на что угодно. При том как на переменные в динамической памяти, так и в статической. | ||
- | Есть адресная арифметика (ADDADR, SUBADR, DIFADR), преобразование типов указателей (CAST), разыменование (^), функция взятия адреса (ADR), аллокация и деаллокация (NEW-DISPOSE или ALLOCATE-DEALLOCATE - два варианта), размер типа в байтах (TSIZE) и NIL. В случае получения невалидного адреса, разыменования NIL и т.п. выдаётся ошибка. | ||
- | TYPE | ||
- | TreePtr = POINTER TO TreeGlue; | ||
- | TreeGlue = RECORD | ||
- | key : KeyType; | ||
- | left : TreePtr; (* left child *) | ||
- | right : TreePtr; (* right child *) | ||
- | END; | ||
В Java явных указателей нет. | В Java явных указателей нет. |