История изменений
Исправление wandrien, (текущая версия) :
Так это одно и то же.
Нет.
ссылка — более узкое понятие, подразумевающее обычно адрес одной единственной переменной
Ссылка и указатель — это две разные абстракции модели исполнителя. Их определение и свойства между языками отличаются и зависят от конкретной модели.
Но называть указатель ссылкой — абсурд.
Одно из основных свойств ссылки — её синтаксическая прозрачность. Если у вас написано a + 1
, то по виду выражения вы не знаете, ссылка перед вами или нет.
Могут быть языки со ссылками, но без указателей. (Скриптота.)
Могут быть языки с указателями, но без ссылок. (Си)
Могут быть с обеими абстракциями. (Си++, Паскаль)
И наверное без обеих. (Тут сходу не назову полнофункциональный ЯП… Ну пусть будет shell.)
При этом ссылки могут фигурировать только как аргументы функций (кажется, в Паскале так – поправьте, если ошибаюсь) или свободно (C++, php). Быть неизменяемыми (C++) или иметь возможность перепривязки к другому объекту (php).
Исходная версия wandrien, :
Так это одно и то же.
Нет.
ссылка — более узкое понятие, подразумевающее обычно адрес одной единственной переменной
Ссылка и указатель — это две разные абстракции модели исполнителя. Их определение и свойства между языками отличаются и зависят от конкретной модели.
Но называть указатель — ссылкой абсурд.
Одно из основных свойств ссылки — её синтаксическая прозрачность. Если у вас написано a + 1
, то по виду выражения вы не знаете, ссылка перед вами или нет.
Могут быть языки со ссылками, но без указателей. (Скриптота.)
Могут быть языки с указателями, но без ссылок. (Си)
Могут быть с обеими абстракциями. (Си++, Паскаль)
И наверное без обеих. (Тут сходу не назову полнофункциональный ЯП… Ну пусть будет shell.)
При этом ссылки могут фигурировать только как аргументы функций (кажется, в Паскале так – поправьте, если ошибаюсь) или свободно (C++, php). Быть неизменяемыми (C++) или иметь возможность перепривязки к другому объекту (php).