首页 第13章 结构体指针

第13章 结构体指针

举报
开通vip

第13章 结构体指针null第13章 结构体指针第13章 结构体指针通过第12章的学习我们认识了数组指针。当用一个指针变量指向一个结构体变量时,该指针被称为结构体指针。通过结构体指针可访问该结构体变量、初始化结构体成员变量。在这一章中讲结合实例详细介绍结构体指针的使用方法。13.1 结构体指针介绍13.1 结构体指针介绍结构体是一种自定义的数据类型。定义一个结构体类型之后,我们可以像用基本类型一样定义以及使用结构体变量。结构体一个很重要的特点就是,结构体中可以包含结构体指针。链表正是结构体这一特性的重要应用。13.1.1 结...

第13章  结构体指针
null第13章 结构体指针第13章 结构体指针通过第12章的学习我们认识了数组指针。当用一个指针变量指向一个结构体变量时,该指针被称为结构体指针。通过结构体指针可访问该结构体变量、初始化结构体成员变量。在这一章中讲结合实例详细介绍结构体指针的使用方法。13.1 结构体指针介绍13.1 结构体指针介绍结构体是一种自定义的数据类型。定义一个结构体类型之后,我们可以像用基本类型一样定义以及使用结构体变量。结构体一个很重要的特点就是,结构体中可以包含结构体指针。链 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 正是结构体这一特性的重要应用。13.1.1 结构体指针定义13.1.1 结构体指针定义1.先定义结构体,再定义结构体指针变量 2.在定义结构体的同时,定义结构体指针变量 3.直接定义结构体指针变量13.1.2 初始化结构体指针13.1.2 初始化结构体指针指针都是需要初始化的,否则指针就不知道指向哪里,造成非法操作。对结构体指针的初始化方法有很多种,常见的初始化方法介绍如下。 (1)和其他类型的指针一样初始化。 (2)在定义一个结构体指针之后进行赋值。 (3)直接采用动态分配一个内存的方式将获取的内存地址赋值给指针变量,如下代码所示。 (4)如果不想先分配内存,也不把指针指向任何变量,也需要进行初始化,将其值设为NULL。13.1.3 指针访问运算符“->”13.1.3 指针访问运算符“->”C语言中提供了一种指针访问运算符:->。可以通过这个运算符来访问一个结构体变量的每个数据域的值。指针访问运算符->是一种运算符,是结构体指针变量通过这个运算符访问结构体成员的途径,就像结构体变量通过点运算符实现访问结构体成员一样。13.2 使用指针操作结构体成员13.2 使用指针操作结构体成员C语言规定,当结构体指针变量指向了一个同类型的结构体变量后,就可以通过该指针对结构体的成员变量进行各种操作。初始化结构体变量就是通过指针来为结构体变量的每个域赋值。13.3 结构体指针实例程序13.3 结构体指针实例程序前面讨论了结构体指针的定义及初始化,也介绍了如何使用结构体指针访问、操作结构体成员。本节将结合综合实例进一步说明如何使用结构体指针解决实际操作中遇到的一些问题。13.4 链表13.4 链表结构体还有一个很重要的特点就是结构体还可以包含结构体指针,当然这里的前后两个结构体是同一个结构体类型。数据的两大存储结构之一的链式存储正是这样一个特点的应用。下面介绍一下这种带有本身指针类型的结构体。13.4.1 链表介绍13.4.1 链表介绍链表可以用一条链子将存在不同地方的数据链在一起,使用灵活,不一定要有一片连续的内存而且大小可以动态分配。链表有很多种类:单链表、双链表还有循环链表等。13.4.2 链表结点定义13.4.2 链表结点定义下面介绍最简单也是最基础的单链表,其他的链表就不介绍了。链表的每个结点就是一个结构体,只是这种结构体类型有点特殊:结构体域中含有自身类型的指针用来存储下一个结点的地址。13.4.3 链表的创建13.4.3 链表的创建链表的创建就是将一个个结点串起来的过程,单链表的创建过程如下: (1)为新结点分配内存; (2)为新结点赋值,next域赋值为NULL; (3)将新结点链接到链表的尾部,同时修改临时指针指向新结点以便下次链接。13.4.4 链表的遍历13.4.4 链表的遍历链表的遍历就是通过指针的依次后移,也就是将当前指针赋值为其next域的值。 遍历链表结点的步骤如下: (1)将链表的第一个结点赋给一个临时变量; (2)读取结点信息; (3)指针后移也就是将当前结点的next域的值赋给当前指针; (4)判断当前指针是不是NULL,如果不是转到(2),如果是NULL遍历结束。13.4.5 链表的插入操作13.4.5 链表的插入操作链表的插入操作就是在链表中某个位置前插入一个新的结点。链表的插入操作分为:创建新结点、寻找插入位置(p指针保存)、链入新结点到p的后继、断原来的链,让p的后继指向新结点。13.4.6 链表的删除操作13.4.6 链表的删除操作链表的删除操作就是要删除链表位置中指定位置的结点的过程。链表的删除操作就是将要删除的前一个结点的next指向要删除结点的后一个结点,然后释放该存储单元。13.5 小结13.5 小结本章主要讨论了结构体指针的定义和初始化及使用方法,还讨论了结构体在链表中的应用。重点讲解了讲了如何使用指针操作结构体成员,链表的遍历、插入和删除基本操作。在下一章中将讨论函数指针的使用方法。13.6 习题13.6 习题1、有一结构体student,含学号、姓名和3门课的成绩。 要求 对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗 在main()函数中赋值,在另一函数print()中将它们打印输出。要求用指向结构体变量的指针作实参。 2、有一结构体student,含sno、name及age三个成员,在定义时初始化,请分别用结构体变量和指针两种形式输出其成员数据。 3、编程实现对一字符型链表进行逆序操作。
本文档为【第13章 结构体指针】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_518499
暂无简介~
格式:ppt
大小:44KB
软件:PowerPoint
页数:0
分类:互联网
上传时间:2012-05-04
浏览量:45