dereference


dereference

(programming)To access the thing to which a pointer points,i.e. to follow the pointer. E.g. in C, the declarations

int i;int *p = &i;

declare i as an integer and p as a pointer to integer. p isinitialised to point at i ("&i" is the address of i - theinverse of "*"). The expression *p dereferences p to yield ias an lvalue, i.e. something which can appear either on theleft of an assignment or anywhere an integer expression isvalid. Thus

*p = 17;

would set i to 17. *p++ is not the same as i++ however sinceit is parsed as *(p++), i.e. increment p (which would be aninvalid thing to do if it was pointing to a single int, as inthis example) then dereference p's old value.

The C operator "->" also dereferences its left hand argumentwhich is assumed to point to a structure or union of whichthe right hand argument is a member.

At first sight the word "dereference" might be thought to mean"to cause to stop referring" but its meaning is wellestablished in jargon.

dereference

To go to an address before performing the operation. For example, in C programming, a dereferenced variable is a pointer to the variable, not the variable itself. The expression int Num; declares an integer variable named "Num." The expression *pNum = &Num; places the address of the variable Num (not its contents) into the pointer. The ampersand is the "address of" operator.

Another example is found in the tar archiving program. The dereference switch causes files referenced by symbolic links to be archived rather than the symbolic link itself. The term always refers to "following the link" in order to obtain the intended resource. See symbolic link.