The unary &, address, operator.
int foo, *bar; bar = &foo; /* The pointer bar contains the address of foo. */
int foo, **bar; bar = &(&foo); /* This is a meaningless statement */
int foo, *bar; bar = &foo; *bar = 5; /* Sets foo to the value 5 */
int foo, *bar, **baz; bar = &foo; baz = &bar; *(*baz) = 5; /* Sets foo to the value 5 */
struct foo { int member; } inst, *ptr; ptr = & int; (*ptr).member = 2; ptr->member = 3;
char *string; long *ptr1, *ptr2; if (ptr1 != ptr2); /* Compare two pointers of the same type */ if (0 == ptr1); /* Compare against 0. Same as if (ptr1) */ if (ptr1 == string); /* XXX Not allowed */