问一个关于PDWORD类型的问题(100分)

  • 主题发起人 主题发起人 nibul
  • 开始时间 开始时间
N

nibul

Unregistered / Unconfirmed
GUEST, unregistred user!
C++中可以对一个PDWORD类型的变量进行 “变量++” 的操作,这么这个操作对于PDWORD类型的变量来说是对指针的指向的地址进行的操作吗?那么这个转换为pascal的语法应该怎么写,不知道我说的是否明白,这个操作肯定不是+1的操作。
 
变量++,是把地址往后移动SizeOf(变量类型)个字节(如果变量是指针,如果是简单类型,那么就是把变量+1),在pascal里就是Inc(指针变量-或者说指针吧)

参考
Note: If X is a pointer type, it increments X by N times the size of the type pointed to. Thus, given

type

PMytype = ^TMyType;

and

var

P: PMyType;

the statement

Inc(P);

increments P by SizeOf(TMyType).
 
var:
pd : pdword;
.....
Inc(pd);
Inc(pd,1);
Inc(pd,10000);
 
用 Inc 函数,不过注意第二个参数是步长,跟指针类型有关,而不是要移动的字节数:
例如:
p: PChar
Inc(p, 2) 移动 2 个字节
p: PDWORD
Inc(p, 2) 移动 8 个字节(两个 DWORD)
 
后退
顶部