返回字符串文字,变量,对象或过程的地址
语法
用法
result = @ rhs
参数
rhs
字符串文字,变量,对象或过程来检索地址。
T
返回值
返回右侧(rhs )操作数的地址。
说明
操作符 @(地址)返回其操作数的内存地址。
当操作数类型为
String时,返回内部字符串描述符的地址。使用
操作符 Strptr(String pointer)来检索字符串数据的地址。
操作数不能是数组,但可能是数组元素。例如,
"@myarray(0)"返回地址
"myarray(0)".
对于用户定义的类型,此运算符可能会重载。
例子
'该程序演示了@运算符的使用。
Dim a As Integer
Dim b As Integer
Dim addr As Integer Ptr
a = 5 '这里我们将值5和10分别放在a和b中。
b = 10
'在这里,我们打印变量的值,然后将它们存储在内存中。
Print "A中的值为";a;"但指向a的指针是";@a
Print "B中的值是";b;"但指向b的指针是";@b
'现在,我们将以上面的整数ptr,并使用@来放置一个值。
'请注意,*将检查ptr中的值,就像@检查ptr
'对于正常变量。
addr = @a
Print "指针addr现在将内存地址指向a,值:";*addr
addr = @b
Print "指针addr现在将内存地址指向b,value:";*addr
'该程序演示了如何使用@符号
'创建指向子例程的指针。
Declare Sub mySubroutine ()
Dim say_Hello As Sub()
say_Hello = @mySubroutine '我们告诉say_Hello指向我的子程序。
'sub()数据类型在这里用作指针。
say_Hello() '现在我们可以像我的子程序一样运行say_Hello。
Sub mySubroutine
Print "hi"
End Sub
方言差异
与QB差别
参考