dereference definition 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 is initialised to point at i ("&i" is the address of i - the inverse of "*"). The expression *p dereferences p to yield i as an lvalue
, i.e. something which can appear either on the left of an assignment
or anywhere an integer expression is valid. Thus
*p = 17;
would set i to 17. *p++ is not the same as i++ however since it is parsed as *(p++), i.e. increment p (which would be an invalid thing to do if it was pointing to a single int, as in this example) then dereference p's old value.
operator "->" also dereferences its left hand argument which is assumed to point to a structure
of which the 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 well established in jargon.