请教 ^ 的意义(20分)

  • 主题发起人 主题发起人 victorachc
  • 开始时间 开始时间
V

victorachc

Unregistered / Unconfirmed
GUEST, unregistred user!
case NMHdr^.code of //^可以不要,why?
NM_CLICK,NM_RCLICK:.....
请问^代表何义?
 
p^
就是指针p所指的地址的内容
understand
 
呵呵,这是最基本的Pascal常识了。
 
type
TMyDataStru = Integer;
PMyDataStru = ^TMyDataStru;
var
X: TMyDataStru;
P: PMyDataStru;
begin
X:= 5;
New(P);
P^:= X;
...
Dispose(P);
end;
看懂了么?
 
在C/C++语言中指针是这样使用的:
typedef struct _Point
{
double x;
double y;
}Point;

Point aPoint,*pp; //声明了一个Point结构的变量和一个Point结构的指针变量
pp = &aPoint; //pp指向aPoint
pp->x = 5.0;//访问aPoint的X成员
pp->y = 8.0;//访问aPoint的Y成员

而在DELPHI中,其指针类型更加严格,需要改成下面的定义:
Point = record
x:double;
y:double;
end;

PPoint = ^Point;
aPoint:Point;
app:PPoint;

app = @aPoint;//app指向aPoint记录
app^.x = 6.0;
app^.y = 8.0;//访问aPoint的x和y成员

现在明白了吗。^在声明时指明是指针类型,在使用时表明是解引用。
 
引用

var
I: Integer;
PI: ^Integer;
begin
I := 12;
PI := @I;
PI^就是12表示引用
@取址
^引用

end;
 
后退
顶部