关于 Delphi 的指针
看一个指针用法的例子:
ar
X,Y:Integer;
P:^Integer;
cStr:String;
begin
X:=17;
P:=@X; //书上说指针是一个无符号整数,把X的地址赋给P,此时P里存的是一个什么值?一个整数?
//我用str(P,cStr)说是类型不符了。STR(X,cStr)就可以,所以P也不是一个整数啊...
//那此时P的值究竟是多少?怎么获取?我想看看地址究竟是什么东西。
Y:=P^;
end;
[解决办法]
var X,Y:Integer; P:^Integer; cStr:String;begin X := 17; P := @X; Str(P^,cStr); //P是指针,你要访问其中的值,要对它解引用 ShowMessage(cStr);end;
[解决办法]
P的值就是X的地址: Integer(P)
P指向的值就是X的值:P^
打个比方,内存就好比数组a: array[0..9] of Byte;
现在假设X就是a[3],即a[3]=X=17,那么P的值就是X的地址3,而P指向的值就是a[3]
[解决办法]