Delphi 学习笔记 指针篇

1.Delphi中@,^,#,$分别表示什么,如何用?

^: 指针 @: 取址

@:取址运算符;

var intVal:integer; 
p:^integer; 
new(P); //申请内存空间
intVal:=24; 
p:=@intVal; //取变量 intVal 的地址赋值给 整形指针,整形指针指向intVal的地址
dispose(P);//释放内存

^:指针的引用解析操作符;

var pint:^integer;//取整形指针
new(pint); //
showmessage(inttohex(integer(@pint),8)); 
pint^:=$ff; 
showmessage(inttohex(pint^,4));

 

符号 ^ 有两种用途:

1.当它出现在类型标识符之前,如 ^typeName 表示一个类型,该类型表示指向typeName类型变量的指针。

2.当它出现在指针变量之后,如pointer^ 该符号对指针解除参照,也就是说,返回存储在内存地址(该地址保存在指针中)的值指针指向的数据.

var I: Integer; PI: ^Integer;  
begin 
    I := 10;//将10赋值给I
    PI := @I;//取I的地址赋值给指针PI
    PI^ := 20; //将20赋值给 PI指针指向地址里面的数据
    I := PI^; //取出PI指针指向地址里面的数据 赋值给I
end;

Pint:^string;在这里将^放在数据类型之前,说明是声明的字符串指针类型,如果想取出指针引用的值的话,就将^放在声明的类型后就可以了,比如:Pint^ ;

想取Pint类型的所引用地址的话,就将@放在之前就可以了,比如:@Pint;

取指针值的方法,比如y:=p^; 就是指为Y赋值指针P里面的值(数据)

2.数值转换

#: 十进制符 $: 十六进制符

x:=$11;//$是取16进制 意思是取整数11的十六进制
edit1.text:=intToStr(x) ;//intToStr整数转换字符串  edit显示的是17

3.指针如何用

type
RTestInfo = record //定义一个结构体 成员只有一个 Age
Age:Integer;
end;
PtestInfo = ^ RtestInfo; //定义结构体指针
var
Test1,Test2:PtestInfo; //声明两个指针变量
Begin
    New(Test1);//申请空间
    Test1^.Age:=12;
    Test2:=Test1;// 重点  这里是将Test1的地址赋值给Test2 说明 Test1和 Test2指向了同一个地址,也可以说是将Test2保存了一份Test1的起始地址
    DisPose(Test2);//释放空间
End;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值