Next: , Up: Pointers   [Contents][Index]

14.1 Address of Data

The most basic way to make a pointer is with the “address-of” operator, ‘&’. Let’s suppose we have these variables available:

int i;
double a[5];

Now, &i gives the address of the variable i—a pointer value that points to i’s location—and &a[3] gives the address of the element 3 of a. (By the usual 1-origin numbering convention of ordinary English, it is actually the fourth element in the array, since the element at the start has index 0.)

The address-of operator is unusual because it operates on a place to store a value (an lvalue, see Lvalues), not on the value currently stored there. (The left argument of a simple assignment is unusual in the same way.) You can use it on any lvalue except a bit field (see Bit Fields) or a constructor (see Structure Constructors).