Comment Comment by tordek As said elsewhere: "Declaration follows use". int *foo; means "foo is a pointer to int". But that's explained different from how it's written. More clearly, you can say that "foo" is an int. Then, doing int *foo; foo = 50; is obviously wrong because "foo" is not an int; however int *foo; *foo = 50; is correct.Similarly for arrays: int *foo[50]; means "foo is an array of pointers to int", or "foo[5] is an int".From there follows that & is the antithesis of , and they negate each other: int *foo; //foo is a pointer to int. &*foo; //the address of the contents of foo foo; // same as above, but shorter. parent tordek 16 years ago
Similarly for arrays:
means "foo is an array of pointers to int", or "foo[5] is an int".From there follows that & is the antithesis of , and they negate each other: