Истинный «указатель» имеет две характеристики.
- Он содержит адрес другого объекта (или примитива)
- и предоставляет числовую природу этого адреса, чтобы вы могли сделатьарифметика.
Обычно арифметическими операциями, определенными для указателей, являются:
- Добавление целого числа к указателю в массиве, который возвращает адресдругой элемент.
- Вычитание двух указателей в один и тот же массив, который возвращает число промежуточных элементов (включая один конец).
- Сравнение двух указателей в одном массиве, который указывает, какиеЭлемент находится ближе к началу массива.
Управляемые языки обычно ведут вас по пути «ссылок» вместо указателей.Ссылка также содержит адрес другого объекта (или примитива), но арифметика запрещена.
Среди прочего, это означает, что вы не можете использовать арифметику указателей, чтобы идти от конца массива и обрабатывать некоторые другиеданные, использующие неправильный тип.Другой способ формирования недопустимого указателя используется в таких средах с помощью сборки мусора.
Вместе это обеспечивает безопасность типов, но с ужасной потерей универсальности.