Maybe it is just me, but the author seems to be making things unnecessarily difficult, or even contradictory, in his definitions. Early on, we see 'the pointer is not the variable! The pointer to foo is the contents of foo_ptr.' Then we see 'The pointer has a type, too, by the way. Its type is int.' As it has been established that the content of foo_ptr is the address of foo, l do not see any way for these two statements to be consistent.<p>Later, when he writes 'how do we assign an int to this pointer?', he seems to be discussing assigning an int to 'the contents of foo_ptr', given his earlier definition. I know what he means, of course, but this seems to perpetuate confusion between pointers and the thing pointed to. In my experience, common (if not standard) usage is that pointers are variables whose values are addresses, and one uses 'address' when talking about addresses and 'pointer' when referring to a variable containing an address, and it is all pretty clear.