首页 百科知识 结构体指针

结构体指针

时间:2023-10-16 百科知识 版权反馈
【摘要】:结构体指针表示的是指向结构体类型的指针,该结构体指针变量中存放的就是结构体变量所占内存空间的首地址。定义结构体指针变量的一般形式如下:使用“.”运算符通过指针变量访问结构体成员,如(*p).age、(*p).sex。结构体指针的使用和指针变量使用方法一样,唯一的新知识点就是结构体成员指针选择运算符“->”,需要熟练掌握。

6.5 结构体指针

结构体指针表示的是指向结构体类型的指针,该结构体指针变量中存放的就是结构体变量所占内存空间的首地址。定义结构体指针变量的一般形式如下:

struct结构体名*指针变量名;

例如:

img264

p是指向结构体变量stu的结构体指针,使用指针p访问变量stu中的成员有以下2种方法:

(1)使用“.”运算符通过指针变量访问结构体成员,如(*p).age、(*p).sex。需要注意括号必须有,因为运算符“.”的优先级高于运算“*”,所以必须使用圆括号把*p括起来,即把(*p)作为一个整体。

(2)使用结构体成员指针选择运算符“->”访问结构体成员,如:p->a、p->b。

【例6.13】利用结构体指针访问结构体变量的成员。

代码如下:

img265

运行结果如图6-19所示。

img266

图6-19

分析:

结构体指针的使用和指针变量使用方法一样,唯一的新知识点就是结构体成员指针选择运算符“->”,需要熟练掌握。

【例6.14】指向结构体数组的指针的应用。

代码如下:

img267

img268

运行结果如图6-20所示。

img269

图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。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈