C++规定所有变量在使用前必须先定义,即指定其类型。在编译时按变量类型分配存储空间。对指针变量必须将它定义为指针类型。先看一个具体例子:
int i,j; //定义整型变量i,j
int *pointer_1, *pointer_2; //定义指针变量*pointer_1,*pointer_2
第2行开头的int是指: 所定义的指针变量是指向整型数据的指针变量。也就是说,指针变量pointer_1和pointer_2只能用来指向整型数据(例如i和j),而不能指向浮点型变量a和b。这个int就是指针变量的基类型。指针变量的基类型用来指定该指针变量可以指向的变量的类型。
定义指针变量的一般形式为
基类型 *指针变量名;
下面都是合法的定义:
float *pointer_3; // pointer_3是指向单精度型数据的指针变量
char *pointer_4; // pointer_4是指向字符型数据的指针变量
请注意: 指针变量名是pointer_3和pointer_4,而不是*pointer_3和*pointer_4,即“*”不是指针变量名的一部分,在定义变量时在变量名前加一个“*”表示该变量是指针变量。
那么,怎样使一个指针变量指向另一个变量呢?只需要把被指向的变量的地址赋给指针变量即可。例如:
pointer_1=&i; //将变量i的地址存放到指针变量pointer_1中
pointer_2=&j; //将变量j的地址存放到指针变量pointer_2中
这样,pointer_1就指向了变量i,pointer_2就指向了变量j。见图6.4。

一般的C++编译系统为每一个指针变量分配4个字节的存储单元,用来存放变量的地址。
在定义指针变量时要注意:
(1) 不能用一个整数给一个指针变量赋初值。
(2) 在定义指针变量时必须指定基类型。
评论