In the pass-by-pointer pattern, the parameter still gets the value of its argument, but it is passed the value of an address. Changing a pointer parameter's value will not change its argument's value, but by dereferencing a pointer parameter, the function can change the contents of memory that both the parameter and its argument refer to.