Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.014 c
1-98676
Eugene_29
2003-10-20 19:25
2003.10.30
Поле ввода фикс. размера с автомат. изменяющимся размером шрифта


1-98724
Wiz@rd
2003-10-20 22:54
2003.10.30
WMI


4-98933
gRad2003
2003-08-23 14:53
2003.10.30
Resorces


3-98458
denis24
2003-10-10 09:46
2003.10.30
редактирование записи в гриде


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




   Наверх