在Delphi / Free Pascal中:是一个运算符还是简单地表示一个指针类型?
示例代码
program Project1; {$APPTYPE CONSOLE} var P: ^Integer; begin New(P); P^ := 20; writeln(P^); // How do I read this statement aloud? P is a pointer? Dispose(P); readln; end
解决方法
当^用作类型的一部分(通常在类型或变量声明中)时,它意味着“指向”。
例:
type PInteger = ^Integer;
当^用作一元后缀运算符时,它意味着“取消引用该指针”。所以在这种情况下,它意味着“打印P指向”或“打印P的目标”。
例:
var i: integer; a: integer; Pi: PInteger; begin i:= 100; Pi:= @i; <<--- Fill pointer to i with the address of i a:= Pi^; <<--- Complicated way of writing (a:= i) <<--- Read: Let A be what the pointer_to_i points to Pi^:= 200;<<--- Complicated way of writing (i:= 200) writeln('i = '+IntToStr(i)+' and a = '+IntToStr(a));