This dereferences a pointer value (see Pointers; that is, it returns the actual value pointed to by the pointer. For example, the following takes the value in var, adds 1, and stores the result to x.
ptr = &var;
x = *ptr + 1;
The pointer de-reference may also be used on the left side of an assignment to change the value pointed at by the pointer, as follows:
*ptr = x + 1;
This takes the value in x, adds 1, and stores the result to the variable pointed at by ptr.
This is a powerful tool indeed. It allows the destination of an assignment to be changed at runtime. For example, an application may need to set one of 500 variables, depending on some variable q. It would be impractical to write 500 assignment statements inside of 500 separate actions. It would be much simpler to create a 500 element array, with each element pointing at a different variable. Then execute the statement:
*(ptrArray[q]) = order;
This assigns the value in order to the variable pointed at by element q of the array of pointers ptrArray.
Pointers to new values may be created with the New function.