Главная страница
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.028 c
15-1151432483
JUS
2006-06-27 22:21
2006.07.30
Модераторам


15-1151644517
DeadMeat
2006-06-30 09:15
2006.07.30
Степень двойки и тройки...


2-1152236593
SerJaNT
2006-07-07 05:43
2006.07.30
Подскажите запрос


2-1152354773
Arcalel
2006-07-08 14:32
2006.07.30
удалить папку как


1-1149076648
blackcrazzy
2006-05-31 15:57
2006.07.30
Edit и ComboBox в DBGrid