![]() |
|
|
|
|
#1
|
||||
|
||||
|
Код:
var
Form1: TForm1;
p:pointer;
p1,p2:pointer;
Str:String;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Str:='666';
p1:=pointer(Str);
p2:=@pointer(Str);Чем отличается содержимое p1 и p2 ? Последний раз редактировалось Lotles, 13.10.2009 в 17:26. |
|
#2
|
||||
|
||||
|
Что никто не знает?
|
|
#3
|
||||
|
||||
|
Я знаю, оба указателя, оба бессмысленные.
|
|
#4
|
||||
|
||||
|
Цитата:
var Код:
Form1: TForm1;
S:String;
p2:pointer;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
S:='Test';
p2:=pointer(S);
end;
end.Скажите что находится в p2 ??? |
|
#5
|
||||
|
||||
|
Странный ты, видимо читать не любишь.
В дельфи строка тупо указатель, первые четые байта - смещение, потом данные #0 оканчивающиеся. А интерпритатор делает их удобными тебе (строки). Так вот в p2 у тебя указатель на указатель на строку, т.е. бессмысленный А вот если ты сделаешь: Код:
p2:=@s[1]; |
|
#6
|
||||
|
||||
|
Спасибо за подробное изложение
но p2:=pointer(S) - это указатель на указатель на строку как вы сказали, а указатель в моем понимании это адрес, поэтому я запутался, когда вспомнил про p1:=@S , так и не пойму, чем отличается их содержимое ??? Последний раз редактировалось Lotles, 18.10.2009 в 18:42. |