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

Вниз

Еще раз про указатели.   Найти похожие ветки 

 
arche   (2003-10-20 17:57) [0]

Вопросы в комментариях в коде:

---------------------------------------
type
PType = ^TType;
TType = record
a: String;
b: String;
end;
....
procedure test(var p: PType);
begin
p^.a:= "Строка 1"; { можно и так }
p.b:= "Строка 2" { и так, а в чем разница и как будет действительно правильно?? }
end;

procedure TForm1.Button1Click(Sender: TObject);
var
myP: PType;
begin
New(myP);
test(myP);

ShowMessage(myP.a + myP.b);
ShowMessage(myP^.a + myP^.b); {опять же можно и так и так, а в чем разница и как правильно?? }

Dispose(myP);
end;
----------------------------------------
Данный код отлично работает, но здесь myP используется по разному с одинаковыми результатами. Так хотелось бы знать, в чем разница между myP^.a и myP.a и как все же правильно писать?


 
Skier ©   (2003-10-20 17:59) [1]

Разницы нет.
Компилятор он умный, он сам осуществляет разыменование в случае
необходимости.


 
Юрий Федоров ©   (2003-10-20 18:03) [2]

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


 
icWasya ©   (2003-10-20 18:23) [3]

изза того, что

Var O:TObject;

в Дельфи на самом деле указатель, что бы не плодить по тесту везде O^.ClassName;O^.Delete;O^.Free .... , компилятор автоматически добавляет ^ , когда есть обращение к полю, методу или свойству



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

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

Наверх




Память: 0.47 MB
Время: 0.018 c
14-98862
lak
2003-10-11 00:51
2003.10.30
пять баллов! орех рулит!


14-98804
R
2003-10-13 07:49
2003.10.30
Borland Kylix


1-98707
Нурик
2003-10-21 07:33
2003.10.30
Drag&Drop текста


14-98834
PHPAsker
2003-10-08 03:52
2003.10.30
Телефонная книжка


3-98437
stud
2003-10-10 15:46
2003.10.30
гляньте, что тут не так?