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

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

Указатели или что? [D7, XP]


Tort ©   (2006-07-11 15:53:00) 

Всем привет! Кто нить  подскажет что как и для чего собственно нужны указатели в чем отличие @ от ^?


Mozgan   (2006-07-11 16:14:00) [1]

Уважаемый begin...end !!!!
ОГРОМНОЕ спасибо!  Понятно так изложили что аж слеза от счастья на моей щеке! Спасибо!


begin...end   (2006-07-11 16:12:00) [2]

> Tort   (11.07.06 15:53) [0]

> в чем отличие @ от ^?

Маша живёт на ул. Московской, в доме № 17.
Чтобы выяснить адрес Маши, нужно применить к Маше оператор @.
Чтобы выяснить, кто живёт в доме № 17, нужно применить к дому оператор ^.

@(Маша) = дом № 17.
(дом № 17)^ = Маша.
(@(Маша))^ := Маша.

И с переменными всё точно так же. Если нужно узнать адрес переменной в памяти, к ней нужно применить оператор @. А если нужно выяснить значение, находящееся в памяти по заданному адресу, нужно применить к этому адресу оператор ^.

var
 I: Integer;
 pI: PInteger;
begin
 I := 12345;
 pI := @I;
 // Теперь pI содержит адрес переменной I
 // Т.е. по адресу pI в памяти лежит значение 12345
 // Убедимся в этом:
 ShowMessage(IntToStr(pI^));

 pI^ := 67890;
 // А теперь по адресу pI расположено значение 67890
 // Т.е. значение переменной I изменилось, и она равна 67890
 // И в этом тоже убедимся:
 ShowMessage(IntToStr(I));
end.


Сергей М.   (2006-07-11 16:11:00) [3]

Например, так:

var
 AddressOfSomeIntegerValue: PInteger;
 IntegerValue: Integer;

..

 IntegerValue := 5;
 AddressOfSomeIntegerValue := @IntegerValue;
 ShowMessage(IntToStr(AddressOfSomeIntegerValue^));


Mozgan   (2006-07-11 16:10:00) [4]

т.е. переменная может быть и не описана вначале, но можно сослаться?
Правильно ли я понял?


Плохиш   (2006-07-11 16:09:00) [5]

var pi:^integer; ... pi^:=1;


Mozgan   (2006-07-11 16:07:00) [6]

Спасибо! Но не доходит как использовать ^.
Прошу не ленитесь - покажите кусочек того счастья!


Сергей М.   (2006-07-11 16:06:00) [7]


> в чем отличие @ от ^


@ - указание компилятору взять адрес некоего значения.
^ - указание компилятору взять значение по некоему адресу (разыменование указателя)


Mozgan   (2006-07-11 16:04:00) [8]

Легко вам, мастера!

А маленький примерчик не дадите ;)


Alien1769   (2006-07-11 15:59:00) [9]

Недавно было. Полистай.

Нет быстрее найди слово указателив этой конференции.


Игорь Шевченко   (2006-07-11 15:56:00) [10]


> Кто нить  подскажет


Справка обычно хорошо подсказывает. Или книжка.


Наверх

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