FreeBASIC学习笔记——8.2 指针的类型与运算

8.2.1 标准数据类型的指针
        我们不能单独定义一个指针变量,指针必须声明一个数据类型。在FreeBASIC中,指针有两个名称:Pointer和Ptr,两者完全相同,都是声明指针变量。
        指针的运算用操作符@或VarPtr获取变量的地址、StrPtr获取字符串地址,ProcPtr获取函数地址。用操作符 *访问存储在指针指向的内存位置的实际值。
        这里我们要注意的是指针的数据类型,根据不同的数据类型,指针指向的区域和数值是不同的,比如Short Ptr指针指向的是一个2字节的地址,每次取值时只能取两个字节的数据,地址变化也不是每次加1,而是每次变化2字节的地址。

语法:


例如:


运行结果:


        我们可以用如下框图理解指针,b是一个Integer类型的数据,占用4个字节,若一个方框表示一个Short类型(2个字节),则两个方框表示一个Integer类型的数据(4字节),因而&HAA00和&H5500方框都属于变量b的数据,指针a首先指向b的地址(&H12FEC0),所以获得了b的低2字节,指针加1后,地址变为&H12FEC2,则指向b的高2字节。


8.2.2 空指针
        当指针变量的值为0或者为Null(在定义是值为0)时,我们称其为零指针或空指针。其存在的意义一个是避免指针的非法引用,另外就是在程序中作为状态比较,用以判断指针是否有确切值。一般的,我们在声明指针时如果没有初始化,则编译器默认将指针设置为0,即空指针。
例如:


8.2.3 Any指针

        这里还需要注意的是指针也可以声明为一个Any指针,指向任意的数据类型,在使用时需要强制转换其类型。

例如:


8.2.4 指向指针的指针

        指向指针的指针其实与普通的指针并没有本质的区别,我们按照之前的理解,指针是一个变量,则指向指针的指针也是一个特殊的变量,它所存储的值是一个指针的地址,所以它只能指向一个指针,而不是普通的变量。利用指向指针的指针我们就可以定义一个类似数组的指针数组。指向指针的指针,既可以访问它指向的指针的数据,也可以访问它指向的指针所指向的数据。这里要注意的是指针取值*运算是按从右到左的顺序执行的。

语法:


例如:


参考博客:http://www.office-cn.net/blog-230471-15221.html

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值