【摘要】:注意在使用指向结构体的指针引用结构体成员时,由于“.”优先级高于“*”,所以*p两边的括号不能省略,应写成(*p).num。图8-4指向结构体的指针p指向一个结构体,其中共有三个成员,用“p->num”的形式引用其中的成员,使用起来更直观、方便。p是指向结构体变量的指针,三种方式等价。
一个结构体变量在内存中分配一段连续的内存以存放其成员,这段内存的起始地址就是结构体变量的指针,可以用一个指针变量来保存结构体变量的地址,这就是指向结构体的指针,其定义形式一般为:
结构体类型名*指针变量名;
指向结构体的指针,其定义方法和引用方法同前边所学一样,请看下例。
【例8-4】用指向结构体的指针输出结构体变量的成员。
程序中指针变量p指向student类型,可以保存student类型变量的地址。执行p=&s语句后,p指向s,此时*p即为s的间接引用形式,因此二者输出是一致的。这和前边所学习的指针使用方法完全一致。
注意在使用指向结构体的指针引用结构体成员时,由于“.”优先级高于“*”,所以*p两边的括号不能省略,应写成(*p).num。
为了方便使用,C语言中专门引入了一个指向运算符“->”,该运算符只能用于指向结构体变量的指针,(*p).num等价于p->num,读作“p指向的num成员”,这种使用方法更直观,如图8-4所示。
(www.xing528.com)
图8-4 指向结构体的指针
p指向一个结构体,其中共有三个成员,用“p->num”的形式引用其中的成员,使用起来更直观、方便。
由此,引用一个结构体变量的成员时,共有三种方法:
(1)结构体变量名.成员名。
(2)(*p).成员名。
(3)p->成员名。
p是指向结构体变量的指针,三种方式等价。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。