Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.30;
Скачать: CL | DM;

Вниз

Указатели или что?   Найти похожие ветки 

 
Tort   (2006-07-11 15:53) [0]

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


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


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


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


 
Alien1769 ©   (2006-07-11 15:59) [2]

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

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


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

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

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


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


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


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


 
Mozgan   (2006-07-11 16:07) [5]

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


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

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


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

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


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

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

var
 AddressOfSomeIntegerValue: PInteger;
 IntegerValue: Integer;

..

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


 
begin...end ©   (2006-07-11 16:12) [9]

> 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.


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

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



Страницы: 1 вся ветка

Текущий архив: 2006.07.30;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.042 c
4-1145133480
Volf_555
2006-04-16 00:38
2006.07.30
Как убрать значок программы с панели задач?


8-1139413557
Новенький
2006-02-08 18:45
2006.07.30
Тень на канве


15-1151087577
Crazy manager
2006-06-23 22:32
2006.07.30
Флэшку постирали в стиралке


15-1151645539
Ega23
2006-06-30 09:32
2006.07.30
С Днём рождения! 30 июня


2-1152167147
XTD
2006-07-06 10:25
2006.07.30
Дописать в wave