Pointing the Way

So now that we know what pointers are, how do we create and use them? Remember, a pointer is a variable just like any other. So, in C, we must declare our pointer variables. A pointer to a character would be declared like:

char *p ;

which means to define a variable called p which will normally hold the address of some character. The syntax is meant to indicate the the expression *p should be a character. In fact, that identifies the first aspect of using pointers. The * operator dereferences a pointer, which means that the value of the expression *p is the character to which p points. For example, the code fragment

*p = 'b' ;
printf( "%c\n", *p ) ;

would set the character to which p points to be the character 'b' and would then print it out. This illustrates that a dereferenced pointer may be used anywhere any other variable or expression of that type may be used.

Which of these are valid pointer (variable) declarations?

int *q ;
float **p ;
char *names[100] ;
char *names[] ;