数据类型的值是内存中的地址。
宣言
访问指向数据
指针指向的数据可以使用
操作符 *(Value of)访问。该运算符返回对其操作数指向的数据的引用。下列,
Dim myInteger As Integer = 10
Dim myPointer As Integer Pointer = @myInteger
*myPointer = 20
Print myInteger
定义了一个名为
myInteger的
myInteger变量和一个名为
myPointer的
Integer指针,指向内存中存储
myInteger的位置。
操作符 @(地址)用于检索
myInteger的地址。
20的值赋值给
myPointer指向的位置 -
myInteger的地址或
@myInteger.更改
*myPointer直接影响
myInteger的值(表达式“
*myPointer”与“
myInteger”相同)。
指向用户定义类型的指针
指向用户定义类型的指针与所有其他指针一样被定义和使用。访问
类型或
类的成员需要以下两种方法之一:
Type myType
a As Integer
b As Double
End Type
Dim x As myType
Dim p As myType Pointer = @x
'' 1) dereference the pointer and use the member access operator:
(*p).a = 10
(*p).b = 12.34
'' 2) use the shorthand form of the member access operator:
Print p->a
Print p->b
第一种方法使用
操作符 . (成员访问).该操作符从引用访问成员,因此首先取消引用指针。成员访问运算符具有比取消引用运算符更高的优先级,因此在使用成员访问操作符之前,需要括号来取消引用指针。
第二种方法使用
操作符 -> (访问成员指针).该运算符从指针自动取消引用成员。这可以使代码更清晰一些,尽管这两种形式都产生相同的结果。
参考