

A pointer is used to indirectly access the value referred to by a variable. In order to get an actual, or direct, reference to a pointed-to object, we dereference the pointer. A pointer is a variable that refers to a memory location, which can be an address of another variable or a valid memory address.

Pointers appear in many different aspects of computer use. First, a pointer is not a reference, it is an indirect reference. Pp.Name = "Alice" // same as (*pp).Name = "Alice" Pointers as parameters The idea of pointers and indirection is not exclusive to computer memory. Pointer indirection is rarely used, since Go can automatically take the address of a variable: pp := new(Person) To get the address of an object, use the & operator like this: p := Person Pointer indirectionįor a pointer x, the pointer indirection *x denotes the value which x points to. The variable declaration can be written more compactly: pp := new(Person) C Pointer to Pointer (Multiple Indirection) - A pointer to a pointer is a form of multiple indirection or a chain of pointers. Var pp *Person = new(Person) // pp holds the address of the new struct The indirection operator is also known as the dereference operator. The indirection requires pointer operand error occurs when the programmer creates a pointer to a variable by using myvar instead of &myvar. The indirection operator can be used in a pointer to a pointer to an integer, a single-dimensional array of pointers to integers, a pointer to a char, and a pointer to an unknown type. and new to allocate and get the address of an object. The indirection operator is a unary operator represented by the symbol ().

Pointers store addresses of objects, which can be passed around efficiently, rather than actual objects: Structs and arrays are copied when used in assignments and passed as arguments to functions.
