指针变量的定义和指针变量的基类型
定义指针变量的一般形式如下:
类型名 *指针变量名1,*指针变量名2,……;例如:
int * pi, * Pj;
以上定义语句中,pi和Pj都是用户标识符,在每个变量前的星号*是一个说明符,用来说明该变量是指针变量。注意:变量前的星号不可省略,若省略了星号说明符,就变成了把pi和Pj定义为整型变量。int是类型名,在这里,说明了pi和Pj是两个指向整型(int类型)变量的指针,也就是说变量pi和pj中只能存放int类型变量的地址,这时我们称int是指针变量pi和Pj的基类型。又如:
double *pd;
char *sl.*s2:
在这里定义了三个指针变量pd、sl、s2,其中pd的基类型为double类型,在指针变量pd中,只能 存放double类型变量的地址;sl和s2的基类型为char类型,在sl和s2中只能存放char类型变量的地址。
以下定义的P为一个指向指针的指针变量:
int **P,*s,k=20;
S=&k;P=&s;
在这里,指针变量P的基类型是基类型为int类型的指针类型。以上赋值语句中“&”是求地址运算符,s=&k用来求出整型变量k的地址赋给指针变量s,而使s指向k;p=&s用来求出指针变量S的地址赋给指针变量P,它使P指向s。
为什么指针变量要有“基类型”呢?如8.1节中所述,一个指针变量中存放的是一个存储单元的地址值。