![]()  | 
	
 
  | 
| 
	 | 
| 
		 
			 
			#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.  |