Passing an argument by reference or by address both enable the passed argument to be changed in the calling function by the called function.
Objective-C programming language allows you to pass a pointer to a function.
To do so, simply declare the function parameter as a pointer type.
in the prefuse example we pass an unsigned long pointer to a function and change the value inside the function which reflects back in the calling function:
Objective-C allows a function to return a pointer to local variable, static variable and dynamically allocated memory as well.