理论教育 C语言程序设计教程:结构体指针与结构体数组

C语言程序设计教程:结构体指针与结构体数组

时间:2023-11-21 理论教育 版权反馈
【摘要】:若在C语言中定义一个结构体数组,系统在编译时就会为结构体数组元素分配存储单元,且所有数组元素是连续存放的。结构体数组中的每个元素都是相同的结构体类型,其使用方法与结构体变量相同。例10.5 结构体指针指向结构体数组的使用方法。在for语句中,“ptStudentInfo = tStudentInfo;”语句使指针ptStudentInfo指向结构体数组tStudentInfo,即指针ptStudentInfo指向结构体数组tStudentInfo的起始地址,如图10-1所示。

C语言程序设计教程:结构体指针与结构体数组

若在C语言中定义一个结构体数组,系统在编译时就会为结构体数组元素分配存储单元,且所有数组元素是连续存放的。

如果结构体指针存放的是结构体数组的起始地址,它就指向这个结构体数组。结构体数组中的每个元素都是相同的结构体类型,其使用方法与结构体变量相同。

例10.5 结构体指针指向结构体数组的使用方法。

编写程序:

创建一个名为“eg10_5.c”的新文件,在编辑窗口中输入下面的程序代码。

运行结果:(www.daowen.com)

程序说明:

ptStudentInfo是指向struct student结构体类型数据的指针变量。在for语句中,“ptStudentInfo = tStudentInfo;”语句使指针ptStudentInfo指向结构体数组tStudentInfo,即指针ptStudentInfo指向结构体数组tStudentInfo的起始地址,如图10-1所示。

图10-1 指针ptStudentInfo指向结构体数组tStudentInfo示意图

在第1次循环中,输出tStudentInfo [ 0 ]各个成员的值及记录条数1,然后执行ptS-tudentInfo ++,使ptStudentInfo加上1指向结构体数组tStudentInfo的下一个元素,即tStudentInfo[ 1 ]。在第2次循环中,输出tS-tudentInfo[ 1]各个成员的值及记录条数2。再次执行ptStudentInfo ++后,ptStudentInfo指向tStudentInfo [ 2 ],输出tStudentInfo [ 2 ]各个成员的值及记录条数3。接着再执行ptStudentInfo ++后,ptStudentInfo的值变为tStudentInfo + 3,不小于tStudentInfo + 3 ,退出循环。

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

我要反馈