找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 2310|回复: 2

【VFB】指针(VFB教程3-1)

[复制链接]

51

主题

31

回帖

648

积分

用户组: 大·技术宅

UID
3260
精华
7
威望
12 点
宅币
506 个
贡献
1 次
宅之契约
0 份
在线时间
23 小时
注册时间
2017-12-26
发表于 2018-2-26 22:32:58 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×
指针在高价编程里,扮演着非常重要的角色,不可缺少。新手们被书上的说明,搞的云里雾里,越看越不明白。
需要时间慢慢理解,在我眼里,指针,就是个特殊的变量,与其它变量相比,不过是用法不同而以。简单的可以理解,指针是盗用别的变量来自己用,(还有其它用途。)
  1. dim aa as long '声明变量
  2. dim bb as long ptr '声明个指针
  3. bb=VarPtr(aa) ' 盗用aa 变量  也可以用简写 bb=@aa
  4. aa=1         '原变量用法
  5. print aa
  6. *bb=1        '指针用法,如同上面 aa 一样,现在的 *bb 就是 aa
  7. print *bb
复制代码
看完代码,肯定你会说,直接用 aa 不好吗?干嘛用 *bb其实这只是简单例题,大多时候,指针都用于结构
  1. sub ccc(aa as rect ptr)
  2. aa->Left=10  '给指针的 rect 成员赋值
  3. end sub
复制代码
【指针】其实就是【地址】,表示某个变量的内存地址,当然,如果是代码指针,就是过程或函数的内存地址可以理解,变量的内容,存放在内存的什么位置,
假如 AA 是指针,可以指定任意地址给它,然后如同普通变量一样使用了。Varptr 返回变量或对象的内存地址。Strptr 返回字符串字符数据的内存地址。Procptr 返回过程的内存地址*BB  BB指针变量了普通变量,用法就是普通变量
BB->成员  BB是结构变量 如同 cc.成员 一样当普通变量用BB[i]   BB 不管是不是数组指针,只要是指针就可以这样用,当成了数组用
  1. dim aa as long
  2. dim bb as byte ptr
  3. bb=@aa  'BB 指针,指向 aa 的内存
  4. bb[0]=1  ' aa 是4字节的,这样 BB 是字节指针,这样可以对 aa 变量每个字节不同操作了
  5. bb[1]=2
  6. bb[2]=4
  7. bb[3]=7
复制代码
由于指针的特殊性,也注定了特殊用途,尤其是API,到处用的是指针,API传来的是指针,我们就用指针
API需要指针参数,我们就用指针给它,这是最初的用法,自己写的软件里,你可以永远不用指针,也没关系,但是你理解指针后,会感觉很多地方,用指针比较方便。总之自己软件自己做主,指针只是编程的一种手段。
还有指针的指针,甚至还有指针的指针的指针
  1. dim aa as long ptr ptrdim bb as long ptr ptr ptr '多级指针,具体可以有多少,不敢测试,因为脑子不够用。
复制代码
字符串变量可以直接当指针用
  1. dim aa as string="dddddd"
  2. print aa[0],aa[1]  
  3. 等同于
  4. print asc(aa,1),asc(aa,2)
  5. VB6里是这么写
  6. print asc(mid(aa,1,1)),asc(mid(aa,2,1))
复制代码
回复

使用道具 举报

0

主题

1

回帖

9

积分

用户组: 初·技术宅

UID
4638
精华
0
威望
0 点
宅币
8 个
贡献
0 次
宅之契约
0 份
在线时间
0 小时
注册时间
2019-1-15
发表于 2019-1-15 18:45:17 | 显示全部楼层
VFB是什么啊?  这些代码看起来是VB代码 但是好像有些又不是
回复 赞! 靠!

使用道具 举报

1

主题

159

回帖

624

积分

用户组: 大·技术宅

UID
7535
精华
0
威望
0 点
宅币
464 个
贡献
0 次
宅之契约
0 份
在线时间
71 小时
注册时间
2021-10-16
发表于 2022-5-17 10:37:09 | 显示全部楼层

非常感谢~~支持~~~
回复 赞! 靠!

使用道具 举报

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-4-19 12:37 , Processed in 0.044153 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表