Указатель (тип данных)
Материал из Википедии — свободной энциклопедии
Указатель (пойнтер, англ. pointer) — переменная, диапазон значений которой состоит из адресов ячеек памяти и специального значения — нулевого адреса. Значение нулевого адреса не является реальным адресом и используется только для обозначения того, что указатель в данный момент не может использоваться для обращения ни к какой ячейке памяти.
Указатели примененяются в двух различных сферах. Во-первых, они позволяют использовать некоторые выгоды косвенной адресации, широко применяемой в программировании на языках ассемблера. Во-вторых, указатели предлагают метод динамического управления памятью: их можно использовать для доступа к области с динамическим размещением памяти, обычно называемой кучей, или динамической памятью. Переменные, размещаемые в куче, называются динамическими. Часто они не содержат связанных с ними идентификаторов, и ссылаться на них можно только с помощью указателей и ссылок.
[править] Операции над указателями
Языки программирования, в которых предусмотрен тип указателей, содержат, как правило, две основные операции над ними: присваивание и разыменование. Первая из этих операций присваивает указателю некоторый адрес. Разыменование может быть явным и неявным, в большинстве современных языков программирования разыменование происходит только при явном указании. Языки, предусматривающие использование указателей для управления динамической памятью, должны содержать оператор явного размещения переменных в памяти. В некоторых языках помимо этого оператора предусмотрен еще и оператор явного удаления переменных из памяти. Обе эти операции часто принимают форму встроенных подпрограмм.
[править] Нулевой указатель
Нулевой указатель − это указатель, указывающий в никуда. Используется для того, чтобы показать, что данная переменная-указатель ни на что не ссылается. В различных языках программирования представлен различными константами.
- В машинных кодах: 0
- В языке Глагол: ПУСТО
- В языке Pascal: nil
- В языке Си: NULL
- В языках Java и C#: null