C语言教程:第七章:结构与联合(5) 英语四级作文·大学英语作文·高考英语作文·高中英语作文·考研英语作文·英语六级作文
入党申请书·入党思想汇报·初中英语作文·中考英语作文·小学英语作文·英语作文指导
网站首页  |  公文写作  |  实用文档  |  思想政治  |  个人简历  |  英语作文  |  演讲稿 | 英语计算机试题
高考试题  |  中考试题  |  职场技巧  |  高中作文  |  初中作文  |  小学作文  |  公务员考试  |  网站地图
 您现在的位置是:首页 > 英语计算机试题 > 计算机等级考试模拟题 > 正文
C语言教程:第七章:结构与联合(5)
收集整理:贝奇范文网网站 如文章涉及版权问题,请与我们联系

 本例中,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。联合“联合”也是一种构造类型的数据结构。 在一个“联合”内可以定义多种不同的数据类型, 一个被说明为该“联合”类型的变量中,允许装入该“联合”所定义的任何一种数据。 这在前面的各种数据类型中都是办不到的。例如, 定义为整型的变量只能装入整型数据,定义为实型的变量只能赋予实型数据。   

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

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

一、联合的定义   

定义一个联合类型的一般形式为:    
union 联合名    
{    
成员表    
};   
成员表中含有若干成员,成员的一般形式为: 类型说明符 成员名 成员名的命名应符合标识符的规定。   
例如:    
union perd ata   
{   
int class;   
char office[10];   
};   
  定义了一个名为perdata的联合类型,它含有两个成员,一个为整型,成员名为class;另一个为字符数组,数组名为office。联合定义之后,即可进行联合变量说明,被说明为perdata类型的变量,可以存放整型量class或存放字符数组office。   

二、联合变量的说明   联合变量的说明和结构变量的说明方式相同, 也有三种形式。即先定义,再说明;定义同时说明和直接说明。以perdata类型为例,说明如下:    
union perdata   
{   
int class;   
char officae[10];   
};   
union perdata a,b; /*说明a,b为perdata类型*/   
或者可同时说明为:    
union perdata   
{ int class;   
char office[10]; }a,b;或直接说明为: union   
{ int class;   

本新闻共3页,当前在第1页  1  2  3  

C语言教程:第七章:结构与联合(5)

上一篇:C语言教程:第六章:指针(1)
 最 新 文 章
收藏本页 | 友情连接 | Copyright @ 贝奇范文网 All Rights Reserved.