考点分析十结构体共用体和用户自定义类型课件.ppt

考点分析十结构体共用体和用户自定义类型课件.ppt

ID:57031680

大小:138.00 KB

页数:40页

时间:2020-07-27

考点分析十结构体共用体和用户自定义类型课件.ppt_第1页
考点分析十结构体共用体和用户自定义类型课件.ppt_第2页
考点分析十结构体共用体和用户自定义类型课件.ppt_第3页
考点分析十结构体共用体和用户自定义类型课件.ppt_第4页
考点分析十结构体共用体和用户自定义类型课件.ppt_第5页
资源描述:

《考点分析十结构体共用体和用户自定义类型课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、考点分析十结构体、共用体和用户自定义类型1、typedef关键字*考点1、用typedef声明新类型关键字typedef用于声明一种新的类型,形式如下:typedef类型名标识符其中,类型名是一种已经存在的类型,标识符是用户定义的用作新类型的名称。例如:typedefint*INTP;typedef并没有建立新类型,只是对原有类型另起了一个具有同等意义的别名,两个名字都可以用于声明变量。用INTP声明的变量与用int*声明的变量具有完全相同的属性。2、结构体类型考点2、结构及结构变量的定义struct结构体类型名{类型名1成员名1;类型名2成员名2;…

2、…类型名n成员名n;};一、结构体类型的一般定义形式为:说明:1、结构类型名和成员名都应该是c语言的合法标识符;2、结构类型定义之后一定要有一个分号;3、与数组的定义不同,定义数组时直接声明变量,并为其分配内存单元,而这里定义的是结构,而不是变量;4、定义了结构以后,就可以用它来定义变量了,此时,再为该变量分配相应的内存空间。structstudent{charname[21];intsex;longbirthday;doubleheight;};例如:1、先定义结构再定义结构变量:二、结构体变量定义的一般形式:struct结构体类型名结构体变量名;例

3、如:structstudentstu1,stu2;2、定义结构体的同时定义变量:structstudent{charname[21];intsex;longbirthday;doubleheight;}stu1,stu2;考点三、结构成员的访问对一个结构体类型变量的访问是通过引用它的每一个成员来实现的。引用运算符有两个:.->其中,“->”为结构体指针运算符,引用一个结构体变量的成员有两种方法:结构体变量名和指向结构体的指针变量结构体成员运算符“.”在所有运算符中优先级最高.结构体变量不能作为一个整体进行输入输出,只能对其成员分别输出。1、用.引用结构

4、体成员的一般形式:结构体变量名.成员名例如:printf(“%s”,stu1.name);例如:stu2.sex=1;2、用->引用结构体成员的一般形式:p->成员名(p为该结构体变量地址)例如:structstudent*p;p=&stu1;p->name[]=“zhang”;p->sex=0;一、引用自身的结构:链表是由链指针构成的一种动态数据结构。链表分为单向链表、双向链表和循环链表。引用自身的结构是指一种特殊的结构类型,即在结构中包含有指向本结构本身的指针。例如:structslist{intinfo;structslist*next;};2字

5、节2字节infonext用来存放下一个slist结构变量的地址考点4、链表如上例中,引用自身的结构可以形成链表,通常把next称为链指针。二、单项链表单向链表是由称为结点的数据项构成。数据项通常包含数据成员和链指针成员的结构型数据组成,链指针用来指向后继结点(即存放指向结点的地址)。数据指针数据指针数据NULLhead单向链表的最后一个结点的指针定义为空(用NULL表示)表示链表结束。另外还需要一个头指针head,始终指向链表的起始结点,以便于对链表的操作。要建立一个单向链表,就先要定义一个存放数据和链指针的结构,如slist结构。如果再定义head为

6、指向链表头的指针变量,,再加上下面的程序段,就可以构成如下链表。structslists1,s2;structslist*head,*p;head=&s1;s1.info=2;s1.next=&s2;s2.info=3;s2.next=NULL;23NULLheadS2S1该链表的输出:p=head;while(p!=NULL){printf("%d",p->info);p=p->next;}考点5、链表的建立、插入和删除例:建立有n个学生成绩的动态链表,输入学生成绩并输出:#include#includest

7、ructslist{floatscore;structslist*next;};voidmain(){structslist*head,*p1,*p2;intn,i;printf("请输入要创建的学生个数:");scanf("%d",&n);p1=(structslist*)malloc(sizeof(structslist));head=p1;for(i=1;i<=n;i++){printf("请输入第%d个学生的成绩",i);scanf("%f",&p1->score);p1->next=(structslist*)malloc(sizeo

8、f(structslist));p2=p1;p1=p1->next;}p2->next=NUL

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

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

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