结构体的嵌套问题

结构体的嵌套问题

ID:30902116

大小:140.11 KB

页数:6页

时间:2019-01-04

结构体的嵌套问题_第1页
结构体的嵌套问题_第2页
结构体的嵌套问题_第3页
结构体的嵌套问题_第4页
结构体的嵌套问题_第5页
资源描述:

《结构体的嵌套问题》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、结构体嵌套的问题作者:likefreebird时间:2010-05-2412:00:00指针变量非常灵活方便,可以指向任一类型的变量,若定义指针变量指向结构体类型变量,则可以通过指针来引用结构体类型变量。7.3.1指向结构体类型变量的使用首先让我们定义结构体:structstu{charname[20];longnumber;floatscore[4];};再定义指向结构体类型变量的指针变量:structstu*p1,*p2;定义指针变量p1>p2,分别指向结构体类型变量。引用形式为:指针变量一>成员;[例7・2]对指向结构体类型变量的正确使

2、用。输入一个结构体类型变量的成员,并输出。include广使用maIIoc()需要*/structdata/★定义结构体*/{intday,month,year;};structstu广定义结构体*/{charname[20];longnum;structdatabirthday;/嵌*套的结构体类型成员};main()广定义main()函数*/student=malloc(sizeof(structstu));为/指*针变量分配安全的地址*7printff'lnputname,number,year,month,day:

3、f,);scanf(”%s",student・>name);输广入学生姓名、学号、出生年MH*/scanf(”%ld",&student・>num);scanf(n%d%d%d",&student->birthday.year,&student->birthday.month,&student・>birthday.day);printf(nOutputname,number,year,month,day,f);广打印输出各成员项的值*/printf("%20s%10ld%10d//%d//%d",student->name,student->

4、num,student・>birthday.year,student・>birthday.month,student->birthday.day);}程序中使用结构体类型指针引用结构体变量的成员,需要通过C提供的函数malloc()来为指针分配安全的地址。函数sizeof()返冋值是计算给定数据类型所占内存的字节数。指针所指各成员形式为:student->namestudent・>numstudent・>birthday.yearstudent・>birthday.monthstudent・>birthday.day运行程序:Inputnam

5、e(number.yearzmonth.day:WnnRian3419Q752(3wangjian341987//5//237.3.2指向结构体类型数组的指针的使用定义一个结构体类型数组,其数组名是数组的首地址,这一点前血的课程介绍得很清楚。定义结构体类型的指针,既可以指向数组的元素,也可以指向数组,在使用时要加以区分。[例7・3]在例7・2屮定义了结构体类型,根据此类型再定义结构体数组及指向结构体类型的指针。structdataintday,month,year;};structstu/*定义结构体{charname[20];longnum

6、;structdatabirthday;/嵌*套的结构体类型成员"7};structstustudent[4],*p淀广义结构体数组及指向结构体类型的指针*7作p=student,此时指针p就指向了结构体数组studentop是指向一-维结构体数组的指针,对数组元素的引用可采用三种方法。1)地址法student+i和p+i均表示数组第i个元素的地址,数组元素各成员的引用形式为:(student+i)->name>(student+i)->num和(p+i)・>name、(p+i)・>num等。student+i和p+i与&student[i]

7、意义相同。2)指针法若p指向数组的某一个元素,则p++就指向其后续元素。3)指针的数组表示法若p=student,我们说指针p指向数组student,p[i]表示数组的第i个元素,其效果与student"]等同。对数组成员的引用描述为:p[i].name、p[i].num等。[例7・4]指向结构体数组的指针变量的使用。structdata/*定义结构体类型*7{intday.month,year;};charname[20];longnum;structdatabirthday;};main(){inti;structstu*p,studen

8、t[4]={fliying",1,1978,5,23},{,,wangping,,,2,1979,3,14},{,'libo",3,1980,5,6},{”xuya

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。