- 2
- 0
- 约3.01千字
- 约 6页
- 2017-02-15 发布于北京
- 举报
结构体的嵌套问题
结构体嵌套的问题
作者: 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-namestudent-numstudent-birthday.yearstudent-birthday.monthstudent-birthday.day7.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
您可能关注的文档
最近下载
- DB2302T 063-2023 红小豆绿色优质高产栽培技术规程.pdf VIP
- 山东省“两高”项目管理目录(2025年版).pdf VIP
- 2.《化工和危险化学品生产经营企业重大生产安全事故隐患判定标准(征求意见稿)》编制说明.pdf VIP
- 排污许可应知应会手册-排污单位篇.pdf VIP
- 化工企业消防设施安全管理-中国化学品安全协会.pptx VIP
- 废止《导轨式胶轮系统设计要求》等377项山东省地方标准.pdf VIP
- DB12_T 1427-2025 玉米机收减损作业技术规范.pdf VIP
- 加油新学期新气象主题班会PPT新学期新起点新计划PPT课件(带内容).pptx VIP
- 2023年南昌航空大学计算机科学与技术专业《操作系统》科目期末试卷B(有答案).docx VIP
- 餐饮品牌手册 -蜜雪冰城品牌手册-冰淇淋 奶茶.pdf
原创力文档

文档评论(0)