![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Указатели или что? [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]
> Кто нить подскажет
Справка обычно хорошо подсказывает. Или книжка.