6.5 结构体指针
结构体指针表示的是指向结构体类型的指针,该结构体指针变量中存放的就是结构体变量所占内存空间的首地址。定义结构体指针变量的一般形式如下:
struct结构体名*指针变量名;
例如:
p是指向结构体变量stu的结构体指针,使用指针p访问变量stu中的成员有以下2种方法:
(1)使用“.”运算符通过指针变量访问结构体成员,如(*p).age、(*p).sex。需要注意括号必须有,因为运算符“.”的优先级高于运算“*”,所以必须使用圆括号把*p括起来,即把(*p)作为一个整体。
(2)使用结构体成员指针选择运算符“->”访问结构体成员,如:p->a、p->b。
【例6.13】利用结构体指针访问结构体变量的成员。
代码如下:
运行结果如图6-19所示。
图6-19
分析:
结构体指针的使用和指针变量使用方法一样,唯一的新知识点就是结构体成员指针选择运算符“->”,需要熟练掌握。
【例6.14】指向结构体数组的指针的应用。
代码如下:
运行结果如图6-20所示。
图6-20
分析:
首先,p指向tt[0],第10行输出结果为a 97;第11行的输出项(p++)->u1是先取成员u1的值,再使指针p增1,因此是输出a,p指向tt[1];第12行p->u2++与(p->u2)++等价,输出tt[1]的成员u2的值,再使u2增1,因此输出结果是b 98,同时u2的值增1后变为99;第13输出结果即99;第14行(++p)->u1先使p自增1,此时指向tt[2],输出结果为c 99;第15行p自增1,指向tt[3];第16行的++p->u1等价于++(p->u1),成员u1的值增加1,因此输出结果为e 100。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。