请问VB中有像C一样的指针吗?

nihaoma008 2003-08-18 05:23:22
大家好:
我学VB不久,有个小问题向大家请教。
能用VB实现以下的功能吗?
变量a, b
a储存一个数
b储存a的地址
通过b改变a
...全文
23 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
danielinbiti 2003-08-18
  • 打赏
  • 举报
回复
程序一】:注释:标准的做法SwapStr
Sub SwapStr(sA As String, sB As String)
Dim sTmp As String
sTmp = sA: sA = sB: sB = sTmp
End Sub

【程序二】:注释:用指针的做法SwapPtr
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _ (Destination As Any, Source As Any, ByVal Length As Long)

Sub SwapPtr(sA As String, sB As String)
Dim lTmp As Long
CopyMemory lTmp, ByVal VarPtr(sA), 4
CopyMemory ByVal VarPtr(sA), ByVal VarPtr(sB), 4
CopyMemory ByVal VarPtr(sB), lTmp, 4
End Sub
junki 2003-08-18
  • 打赏
  • 举报
回复
你是不是想学vb呢?
如果是的话,建议你去买一本书----<vb入门与精通>
那里面有比较基础的知识,很适合初学者
zyl910 2003-08-18
  • 打赏
  • 举报
回复
关于模拟指针的推广:
http://expert.csdn.net/Expert/topic/2072/2072972.xml?temp=.908642
★[技术文章]◇用VB写高效的图像处理程序 1.0β
lihonggen0 2003-08-18
  • 打赏
  • 举报
回复
http://www.csdn.net/develop/read_article.asp?id=12882
http://www.csdn.net/develop/read_article.asp?id=12675
http://www.csdn.net/develop/read_article.asp?id=12902
http://www.csdn.net/develop/read_article.asp?id=13066
http://www.csdn.net/develop/read_article.asp?id=13065
lihonggen0 2003-08-18
  • 打赏
  • 举报
回复
http://www.csdn.net/develop/read_article.asp?id=12882
http://www.csdn.net/develop/read_article.asp?id=12675
http://www.csdn.net/develop/read_article.asp?id=12902
http://www.csdn.net/develop/read_article.asp?id=13066
http://www.csdn.net/develop/read_article.asp?id=13065
射天狼 2003-08-18
  • 打赏
  • 举报
回复
直接用A就行了,为什么非得存指针,如果是函数调用的话可以传地址


Private Function AAA(ByVal A As String, ByRef B As String) As String
'参数A为传数组,在函数里的改变不会影响到函数外部
'参数B为传地址,在函数里的改变可以影响到函数外部
End Function
sunrise10 2003-08-18
  • 打赏
  • 举报
回复
vb中没有指针啊
viena 2003-08-18
  • 打赏
  • 举报
回复
只有VC中有指针,C#都没有
馮強 2003-08-18
  • 打赏
  • 举报
回复
VB没有指针。
此代码是《VB真是想不到系列之三:VB指针葵花宝典之函数指针》的配套代码。 本系列文章可见: http://www.csdn.net/develop/list_article.asp?author=AdamBear 本代码主要是用来谈函数指针VB内部的应用之一,给出了qsort和ShellSort的实现。其中ShellSort完全是取自1998年5月VBPJ的Black Belt专栏里的源代码,可以说本文的思想基本上也来自这篇专栏文章。 ShellSort提共了三种不同的实现方法,分别是如下: PolySort1: 用Variant和对象缺省属性来比较。 PolySort2:用ISortable接口的多态对象技术来实现 PolySort3:用函数指针强制回调技术来实现。 分别运行一下这三个程序,可以发现用函数指针是最快的。值得一提作者的钻研精神,完全在VB里实现同一种算法完全三种不同的实现,而且一个比一个好,我非常佩服。 我原以为qsort应该会比它快不少,从算法上来说是这样,不过做出来才发现,要在VB里做出比它快的qsort很难,即使经过了仔细的优化。这是因为qsort的实现上比shellsort复杂,在C里多几次比较、多几次无用的移动影响不大,但在VB里多用一次API回调的Compare、多用一次CopyMemory都是很大的开销。而且qsort要嵌套调用(不嵌套在VB里也慢),我们还要尽量节约堆栈,虽然1M的默认堆栈大小可以被扩充(有相邻的空闲空间时),但是我们依然要考虑可能存在的溢出,所以我做的qsort仅两个参数,两个局部Long型变量。大家可以参考一下我最终的qsort的源代码。 见QSort工程里的basQSort模块,有详细注释。 虽然qsort还是比shellsort慢得多,但是可以说qsort已经进行了较好的优化。可见在VB里一个算法好不好,不能仅仅从理论上看,一个差一点但实现简单的算法和一个好一点但实现上复杂的算法在VB里谁好谁坏很难说。所以从实践意义上,ShellSort的确是个不错的算法。 无论ShellSort还是qsort,它们都还可以更加快,我在文章里说过,那必须要Hack一下SafeArray。 本系列第四篇文章《VB真是想不到系列之三:VB指针葵花宝典之数组指针》里再谈,这篇文章很快就会出来。

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧