Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-98738
Донской
2003-10-20 17:18
2003.10.30
Освобождение памяти, инициализированной New()


1-98554
Wadim
2003-10-20 13:30
2003.10.30
TDateTime


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


14-98823
Карлсон
2003-10-11 23:41
2003.10.30
Деликатесы - мировое кино!


3-98446
Марат
2003-10-10 14:53
2003.10.30
SQL result





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский