A continuación se muestra un ejemplo simple del uso de puntero en Delphi.¿Cuáles son las reglas para usar^para apuntar al valor?
Type
TRecord1 = Record
field1 : String;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
Rec : TRecord1;
Ptr: ^TRecord1;
begin
Rec.field1:= 'field1';
Ptr := @Rec;
memo1.Lines.Add (Ptr^.field1);
memo1.Lines.Add (Ptr.field1); // it also works.
end;
En tal caso, Ptr^y Ptr funcionan ambos. Parece que Delphi es para permitirle al usuario más flexibilidad al señalar el valor. Pero al leer las dos líneas, son sintácticamente diferentes y pueden significar de manera diferente. En tal caso ambos funcionan. Pero mi pregunta es:
- ¿cómo puede un usuario conocer en otras situaciones en las que^pueden o no pueden ser omitidos o, en su^con o sin^significa lo mismo o diferente?
- ¿Cuáles son esas situaciones? Se apreciarán ejemplos.
- ¿Por qué? (Opcional)
Muchas gracias de antemano.
Cuando 'ptr' es un tipo de puntero (incluidos los punteros implícitos), se puede omitir la eliminación de referencias. –