C++语言程序设计

一个指针变量当用来指向一个结构变量时，便称之为结构指针变量。结构指针变量中的值是所指向的结构变量的首地址。通过结构指针便可访问该结构变量，这与数组指针和函数指针的情况是相同的。
定义结构指针的一般形式为：
结构名 *指针变量名；
如 Child *fp 就定义了一个指向结构Child的指针fp。给指针变量fp赋值是把结构变量的首地址赋予该指针变量，不能把结构名赋予该指针变量。
例如，下面的语句定义了指向结构类型employee的指针p，并且把结构变量first_employee的地址赋给了p：
employee * p;
p=&first_employee;
表达式*p 就是对变量first_employee的值。
结构类型和结构变量是两个不同的概念，不能混淆。结构类型就象int、double等类型一样，是一种数据类型，编译系统并不对它分配内存空间。只有定义了结构类型的变量时，才对该变量分配存储空间。因此p=&employee这种写法是错误的，不可能去取一个结构类型的首地址。有了结构指针变量，就能方便地访问结构变量的各个成员。
如果要引用first_employee的成员age，可以用下面的表达式：
（*p）.age
因为运算符"*"的优先级低于运算符"."的优先级，所以要对*p加括号，表示取指针所指向的变量first_employee的值。此外，C＋＋还提供了一种结构类型指针访问结构成员的方法，就是使用运算符"－>"：
指针变量―>成员名