Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Хехехе


inc(665) ©   (2002-06-04 23:07:00) 

Что такое ^Pointer?


Digitman   (2002-06-05 15:09:00) [1]

Прошу прощения, последняя фраза неверна, должно быть :

.. и как ему следует интерпретировать разыменуемый операнд, если он - кардинального типа


Игорь Шевченко   (2002-06-05 15:07:00) [2]

Digitman © (05.06.02 15:05)

Что в С можно - я знаю :-)
Что в паскале - только что узнал :-))


Digitman   (2002-06-05 15:05:00) [3]

>Игорь Шевченко

Общая суть такая :

Компилятору "по барабану", что, сколько раз и в какой последовательности разыменовывается.

Все, что нужно ему при этом - знать, что конкретно разыменовывается (разыменованию могут быть подвергнуты любые типы, явно/косвенно происходящие от указательных либо приводимые к таковым Cardinal-типы) и как следует интерпретировать результат разыменования, если разыменуемое значение - кардинального типа.


Игорь Шевченко   (2002-06-05 13:27:00) [4]

Digitman © (05.06.02 12:38)

Не знал, спасибо за науку :-)


Digitman   (2002-06-05 12:38:00) [5]

>kaif © (05.06.02 11:30)

можно.

пример :

type
PPointer = ^Pointer;

var
i, k: Integer;
pi: Pointer;
ppi: PPointer;
...
i := 5;
pi := @i;
ppi := @pi;

k := Integer(ppi^^);


Игорь Шевченко   (2002-06-05 11:36:00) [6]

Нельзя, это не С :-)


kaif   (2002-06-05 11:30:00) [7]

Кстати, а можно это потом два раза разыменовать?
Типа написать так:
pp^^
:)


Виктор Щербаков   (2002-06-05 10:28:00) [8]

inc(665) (05.06.02 10:21)
А ты вникай! :)
В переменной типа PPointer будет храниться адрес переменной типа Pointer, в которой, в свою очередь, будет хранится какой-то другой адрес.


inc(665)   (2002-06-05 10:21:00) [9]

неа ;(


Виктор Щербаков   (2002-06-05 09:13:00) [10]

Ну

type
PPointer = ^Pointer;

это тип - указатель на указатель. Понятно?


inc(665)   (2002-06-05 09:04:00) [11]

Зачем он нужен .. я непонял ничего.
Прошу вас объяснитепожалуйсто...


Digitman   (2002-06-05 08:45:00) [12]

[NIKEL]

Это не разыменование. Это - тип, определяющий косвенную адресацию данных указанного типа.

type
PPointer = ^Pointer;

var
p: Pointer;
pp: PPointer;
...
pp^ := p; // вот это - разыменование
p := pp^; // и вот это - тоже разыменование



MBo   (2002-06-05 06:48:00) [13]

Указатель - переменная, содержащая в себе некий адрес.
Указатель на указатель - адрес уже этой переменной



[NIKEL]   (2002-06-04 23:15:00) [14]

хм... а что у тебя просто Pointer?

если указатель, то это его разименование или (Pascal) разрешение указателя


Наверх

Титульная страница Поиск, карта сайта Написать письмо