首页 理论教育C语言程序设计第2版:结构体指针

C语言程序设计第2版:结构体指针

【摘要】:当一个指针指向一个结构体变量时,称为结构体指针变量。结构体指针变量中的值是所指向的结构变量的首地址,通过结构指针即可访问该结构变量。结构体指针变量定义的一般形式为:struct结构类型名 *结构指针变量名在定义了struct student结构类型后,如要定义一个指向该结构类型的指针变量pstu,可写为:struct student*pstu;当然也可在定义struct student结构类型的同时定义pstu。与前面讨论的各类指针变量相同,结构指针变量也必须要先赋值后使用。

当一个指针指向一个结构体变量时,称为结构体指针变量。结构体指针变量中的值是所指向的结构变量的首地址,通过结构指针即可访问该结构变量。这与数组指针和函数指针的情况是相同的。结构体指针变量定义的一般形式为:

struct结构类型名 *结构指针变量名

在定义了struct student结构类型后,如要定义一个指向该结构类型的指针变量pstu,可写为:

struct student*pstu;

当然也可在定义struct student结构类型的同时定义pstu。与前面讨论的各类指针变量相同,结构指针变量也必须要先赋值后使用。

赋值是把结构变量的首地址赋予该指针变量,而不能把结构名赋予该指针变量。如果student1是被说明为struct student类型的结构变量,则:

pstu=& student1;

就是对结构指针进行赋值。有了结构指针变量,就能更方便地访问结构变量的各个成员。其访问的一般形式为:

(*结构指针变量).成员名(www.chuimin.cn)

或者:

结构指针变量->成员名

例如:

(*pstu).name

或者:

pstu->name

以上西方形式都是对student1结构体的name成员的访问。

注意:(*pstu)两侧的括号不可少,因为成员符“.”的优先级高于“*”,如去掉括号写做*pstu.num则等效于*(pstu.num),其意义就完全不对了。