结构体的嵌套问题.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
结构体的嵌套问题

结构体嵌套的问题 作者: likefreebird ?时间: 2010-05-24 12:00:00 指针变量非常灵活方便,可以指向任一类型的变量,若定义指针变量指向结构体类型变 量,则可以通过指针来引用结构体类型变量。 7.3.1 指向结构体类型变量的使用 首先让我们定义结构体: struct stu { char name[20]; long number; float score[4]; } ; 再定义指向结构体类型变量的指针变量: struct stu *p1, *p2 ; 定义指针变量p 1、p 2,分别指向结构体类型变量。引用形式为:指针变量→成员; [例7-2] 对指向结构体类型变量的正确使用。输入一个结构体类型变量的成员,并输出。 #include stdlib.h /*使用m a l l o c ( ) 需要* / struct data / *定义结构体* / { int day,month,year; } ; struct stu /*定义结构体* / { char name[20]; long num; struct data birthday; /嵌*套的结构体类型成员*/ } ; main() /*定义m a i n ( ) 函数* / { struct stu *student; 定/*义结构体类型指针*/ student=malloc(sizeof(struct stu)); 为/指* 针变量分配安全的地址*/ printf(Input name,number,year,month,day: ); scanf(%s,student-name); 输/*入学生姓名、学号、出生年月日*/ scanf(%ld,student-num); scanf(%d%d%d,student-birthday.year,student-birthday.month, student-birthday.day); printf( Outputname,number,year,month,day ); /*打印输出各成员项的值*/ printf(%20s%10ld%10d//%d//%d ,student-name,student-num, student-birthday.year,student-birthday.month, student-birthday.day); } 程序中使用结构体类型指针引用结构体变量的成员,需要通过C提供的函数malloc()来为 指针分配安全的地址。函数sizeof()返回值是计算给定数据类型所占内存的字节数。指针所指 各成员形式为: student-name student-num student-birthday.year student-birthday.month student-birthday.day 7.3.2 指向结构体类型数组的指针的使用 定义一个结构体类型数组,其数组名是数组的首地址,这一点前面的课程介绍得很清楚。 定义结构体类型的指针,既可以指向数组的元素,也可以指向数组,在使用时要加以区分。 [例7-3] 在例7 - 2中定义了结构体类型,根据此类型再定义结构体数组及指向结构体类型的指针。 struct data { intday,month,year; }; struct stu/*定义结构体*/ { char name[20]; long num; struct data birthday;/嵌*套的结构体类型成员*/ }; struct stustudent[4],*p;定/*义结构体数组及指向结构体类型的指针*/ 作p=student,此时指针p就指向了结构体数组student。 p是指向一维结构体数组的指针,对数组元素的引用可采用三种方法。 1)地址法 student+i和p+i均表示数组第i个元素的地址,数组元素各成员的引用形式为: (student+i)-name、(student+i)-num和(p+i)-name、(p+i)-num等。student+i和p+i 与student[i]意义相同。 2)指针法 若p指向数组的某一个元素,则p++就指向其后续元素。 3)指针的数组表示法 若p=student,我们说指针p指向数组student,p[i]表示数组的第i个元素,其效果与 student[i]等同。对数组成员的引用描述为:p[i].name、p[i].num等。 [例7-4]指向结构体数组的指针变量的使用。 structdata/*定义结构体类型*/ { intday,month,year; }; structstu/*定义结构体类型*/ { char name[20]; long num; struct data birthda

文档评论(0)

liudao + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档