Форум: "Основная";
Текущий архив: 2003.10.30;
Скачать: [xml.tar.bz2];
ВнизЕще раз про указатели. Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.011 c