考试首页 | 考试用书 | 培训课程 | 模拟考场 | 考试论坛  
全国  |             |          |          |          |          |         
  当前位置:计算机等级 > 二级考试 > C语言程序设计 > C语言辅导 > 文章内容
  

全国计算机等级考试二级C语言入门教程(112)

中华IT学院   【 】  [ 2016年5月25日 ]

本例中,print函数用于输出链表中各个结点数据域值。函数的形参 head的初值指向链表第一个结点。在 while
语句中,输出结点值后,head值被改变,指向下一结点。若保留头指针head,则应另设一个指针变量,把head值赋
予它,再用它来替代head。在main函数中,n为建立结点的数目, num为待删结点的数据域值;head为指向链表的
头指针,pnum为指向待插结点的指针。 main函数中各行的意义是:
第六行输入所建链表的结点数;
第七行调 creat函数建立链表并把头指针返回给head;
第八行调 print函数输出链表;
第十行输入待删结点的学号;
第十一行调 delete函数删除一个结点;
第十二行调 print函数输出链表;
第十四行调malloc函数分配一个结点的内存空间, 并把其地址赋予 pnum;
第十五行输入待插入结点的数据域值;
第十六行调 insert函数插入 pnum所指的结点;
第十七行再次调 print函数输出链表。

从运行结果看,首先建立起 3个结点的链表,并输出其值;再删 103号结点,只剩下105,108号结点;又输入
106号结点数据,插入后链表中的结点为105,106,108。联合“联合”也是一种构造类型的数据结构。在一个“联
合”内可以定义多种不同的数据类型,一个被说明为该“联合”类型的变量中,允许装入该“联合”所定义的任何一
种数据。 这在前面的各种数据类型中都是办不到的。例如, 定义为整型的变量只能装入整型数据,定义为实型的变
量只能赋予实型数据。

在实际问题中有很多这样的例子。 例如在学校的教师和学生中填写以下表格: 姓名年龄 职业单位 “职
业”一项可分为“教师”和“学生”两类。 对“单位”一项学生应填入班级编号,教师应填入某系某教研室。 班级
可用整型量表示,教研室只能用字符类型。 要求把这两种类型不同的数据都填入“单位”这个变量中, 就必须把“单
位”定义为包含整型和字符型数组这两种类型的“联合”。

“联合”与“结构”有一些相似之处。但两者有本质上的不同。在结构中各成员有各自的内存空间, 一个结构变
量的总长度是各成员长度之和。而在“联合”中,各成员共享一段内存空间, 一个联合变量的长度等于各成员中最长
的长度。应该说明的是, 这里所谓的共享不是指把多个成员同时装入一个联合变量内, 而是指该联合变量可被赋予
任一成员值,但每次只能赋一种值, 赋入新值则冲去旧值。如前面介绍的“单位”变量, 如定义为一个可装入“班
级”或“教研室”的联合后,就允许赋予整型值(班级)或字符串(教研室)。要么赋予整型值,要么赋予字符串,不
能把两者同时赋予它。联合类型的定义和联合变量的说明一个联合类型必须经过定义之后, 才能把变量说明为该联合
类型。

分享到:
本文纠错】【告诉好友】【打印此文】【返回顶部
将考试网添加到收藏夹 | 每次上网自动访问考试网 | 复制本页地址,传给QQ/MSN上的好友 | 申请链接 | 意见留言 TOP
关于本站  网站声明  广告服务  联系方式  站内导航  考试论坛
Copyright © 2006-2017 中华考试网(Examw.com) All Rights Reserved  营业执照