Непейвода Н.Н. Программирование. Раздел 4

Непейвода Н.Н. Программирование. Страница 436

В нынешних языках разыменование всегда указывается явно (какая тро­гательная аккуратность, особенно в сопоставлении с тем, какие грубые при­ведения производятся неявно!). Например, в языке Pascalдля получения значения из указателя нужно написать<имя>л, в С/С++/С# — *<имя>.

В языках Pascal, С++/С#, Javaдля создания новых указателей с одновре­менным отведением памяти для значения базового типа имеется оператор new. Практически это — инициализация переменной именно как перемен­ной, а не значения, которое содержит соответствующая локация. Соответ­ственно, удаление указателя вместе с именуемым значением производится при помощи оператора dispose(или delete, в зависимости от языка). В язы­ке Javaпытаются, по мере возможности, обойтись без явного уничтожения указателей, заменяя это неявной сборкой мусора.

Конечно же, явное оперирование с указателями влечет нерегулярности в структуре памяти (и практически всегда на практике приводит к ним), в частности к появлению нескольких имен у одного и того же значения, и к другим неприятностям (см. рис. 7.6, на котором была показана получа­ющаяся ситуация).

В качестве необходимого элемента, сопутствующего указателям как ти­пам данных, укажем специальное указательное значение nil, свидетельству­ющее о том, что указательная переменная не указывает ни на какую пе­ременную. Это не неопределенное значение, оно может анализироваться в программе и при корректном обращении с ним не приводит к выдаче ошиб­ки, но обращение к адресу по такому значению обязано в любой корректной реализации любого языка выдавать ошибку.

Абстрактные последовательности и файлы

Линейный список можно рассматривать как основу для построения аб­страктной последовательности, если определить (наряду с операцией Add) регламент создания и доступа к компонентам (проделать самостоятельно!). Т. е. все, как для стека и очереди. Но все эти структуры являются абстракт­ными с той точки зрения, что допускают различные представления. Ограни­чения, налагаемые на доступ, позволяют говорить о любой реализации.

Новости

  • 1
  • 2
Prev Next

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

24.01.2016

Ракета &quot;Ангара-А5В&quot; в ближайшее десятилетие не полетит

Роскосмос не планирует в течение ближайшего десятилетия осуществлять пуск тяжёлой ракеты-носителя А...

Ученые РФ опровергли выводы исследований о вреде ГМО

24.01.2016

Ученые РФ опровергли выводы исследований о вреде ГМО

Исследователи из Института проблем передачи информации (ИППИ РАН) проанализировали несколько самых п...

Летающие "Крокодилы"

24.01.2016

Летающие &quot;Крокодилы&quot;

20 удивительных фактов о боевом вертолете Ми-24.Этот вертолет стал таким же узнаваемым символом сове...

В Аргентине описали новый вид динозавра-гиганта

24.01.2016

О ранее неизвестном виде динозавра, относящемуся к инфраотряду зауроподов, рассказали аргентинские п...

Реклама