Operator Varptr (Variable Pointer)

Returns the address of a variable or object

Syntax
	KeyPgDeclareDeclare KeyPgOperatorOperator VarPtr ( KeyPgByrefByRef lhs KeyPgAsAs T ) KeyPgAsAs T KeyPgPtrPtr

Syntax
	result = VarPtr ( lhs )

Parameters
	lhs
		A variable or object.
	T
		Any data type.

Return Value
	Returns the address of a variable or object.

Description
	This operator returns the address of its operand.

	When the operand is of type KeyPgStringString, the address of the internal string 
	descriptor is returned. Use KeyPgOpStrptrOperator Strptr (String Pointer) to retrieve 
	the address of the string data.

	The operand cannot be an array, but may be an array element. For 
	example, "VarPtr(myarray(0))" returns the address of "myarray(0)".

	KeyPgOpAtOperator @ (Address Of), when used with variables or objects, has 
	identical behavior.

Example
	Dim a As Integer, addr As Integer
	a = 10

	'' place the address of a in addr
	addr = CInt( VarPtr(a) )

	'' change all 4 bytes (size of INTEGER) of a
	Poke Integer, addr, -1000 
	Print a

	'' place the address of a in addr (same as above)
	addr = CInt( @a )

	'' print the least or most significant byte, depending on the CPU endianess
	Print Peek( addr ) 

Differences from QB
	* None

See also
	* ProPgPointersPointers
	* KeyPgPokePeek
	* KeyPgPokePoke

