欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    《结构共用型和》PPT课件.ppt

    • 资源ID:5589834       资源大小:238.99KB        全文页数:48页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《结构共用型和》PPT课件.ppt

    第10章 结构、共用型和枚举型,10.1 结构类型及结构变量的定义为将不同数据类型、但相互关联的一组数据,组合成一个有机整体使用,C语言提供一种称为“结构”的数据结构。C语言中的结构类型,相当于其它高级语言中的“记录”类型。10.1.1 结构类型定义定义一个结构体类数据类型的一般格式如下:struct 结构类型名/*struct是结构类型关键字*/数据类型标识符 数据项1;数据类型标识符 数据项2;数据类型标识符 数据项;/*注意此行“”后的“;”不能少!*/,例题10.1 定义一个关于学生基本情况的结构类型,用以存学生的相关信息。/*功能:定义一个记录学生成绩的结构类型*/struct date int year;int month;int day;/*记录学生成绩的结构类型:由学号、姓名、成绩和考试日期4项组成*/struct student_score char num9;char name11;struct date exam_date float score;,注意:学号若为8位,则num数组要为num9,多留1位存放字符串结束符。同理姓名数组name11 也多留了1位(即实际姓名最多只能用10位)。(1)“结构类型名”和“数据项”的命名规则,与变量名相同。(2)数据类型相同的数据项,既可逐个、逐行分别定义,也可合并成一行定义。例如,本例题代码中的日期结构类型,也可改为如下形式:struct date int year,month,day;(3)结构类型中的数据项,既可以是基本数据类型,也允许是另一个已经定义的结构类型。例如,上述例题代码中的结构类型,其数据项“exam_date”就是一个已经定义的日期结构类型date。(4)通常将个数据项称为结构类型的个数据项(或1个成员)。,10.1.2 定义结构体类型变量,1先定义结构类型、再定义结构变量我们在例题10.1中定义了一个用于存放学生成绩的结构类型student _score,还没有定义该类型的变量,只有定义该结构类型的变量后,系统才能为其分配内存单元,进而才能在变量中存放数据。以下就用例题10.1定义中定义结构类型student _score定义一个学生成绩结构类型变量stud1_score,来说明结构体类型变量的定义方法:struct student _score stud1_score,stud2_score;结构体类型名 结构体变量名结构变量stud1_score和stud2_score:拥有student _score结构类型的全部成员,其中exam_date成员是一个日期结构类型,它又由3个成员构成。在这个例子中,我们先定义了结构类型student_score、再定义结构变量stud1_score和stud2_score。注意,此种方法在定义结构变量时,必须指定结构类型名。另外,还可以在定义结构类型的同时,定义结构变量。,2在定义结构类型的同时,定义结构变量对例题10.1的结构类型变量stud1-score的定义可以改为如下形式:struct student _score char num9;char name11;struct date exam_date float score;stud1_score,stud2_score;这种方法定义的作用和上一种方法相同,所不同的是后者将结构类型的定义和结构变量的声明同时完成。,同时定义结构类型及其结构变量的一般格式如下:struct 结构体类型名 成员表列 结构变量表列;提示:(1)结构类型与结构变量是两个不同的概念。通常变量可以被赋值、参加运算,而不能对一个类型赋值或运算。例如对int型变量x可以有x=1,y=x+1等操作,而不能对int类型本身进行这些操作,例如,int=6是错误的。(2)结构体类型中的成员也可以是一个结构体变量。(3)结构体类型中的成员名,可以与程序中的变量同名,它们代表不同的对象,互不相关。,10.2 结构变量的引用与初始化,利用例题10.1中定义的结构类型struct student_score,并由此结构类型定义一个用于存储和显示学生的考试成绩的结构变量stud1_score。例题10.2 结构变量的引用实例/*例题原代码文件名:LT10_2.C。定义并初始化一个自定义结构变量stud1_score*/struct date int year;int month;int day;/*记录学生成绩的结构类型:由学号、姓名、成绩和考试日期4项组成*/,struct student_score char num9;char name11;struct date exam_date float score;struct student_score stud1_score=“05000102”,“Wang qiang”,2006,12,20,90;main()printf(“XH:%sn”,stud1_score.num);printf(“XM:%sn”,stud1_score.name);printf(“exam_date:%d.%d.%dn”,stud1_score.exam_date.year,stud1_score.exam_date.month,stud1_score.exam_date.day);printf(“score:%f n”,stud1_score.score);,程序运行结果:XH:05000102XM:Wang qiangexam_datescore:90.000000,1结构变量的引用,通过例题10.2可以知道,对于结构变量,要通过成员运算符“.”,逐个访问其成员,即结构变量中成员的引用方式为:结构变量成员名 例如例题10.2中引用结构变量stud1_score.num中的num成员。如果某成员本身又是一个结构类型,则只能通过多个成员运算符,一级一级地对最低一级的成员进行引用。例如例题10.2中,stud1_score结构类型中的成员exam_date又是一个结构类型,所以只能通过成员运算符“.”继续引用其下的子成员year、month和day:stud1_score.exam_date.month,关于结构变量引用的说明:(1)不能把一个结构变量当作一个整体进行输入输出及相关运算操作,而只能对其最低一级成员分别进行类似于同类型的普通变量一样的输入输出及相关运算操作。例如:sum=stud1_score.score+stud2_score.scorestud1_score.exam_date.year=2005(2)可以引用结构变量成员的地址,也可引用结构变量的地址。例如:printf(“%x”,/*输出stud1_score的首地址*/结构变量的地址一般用作函数的实参,用于传递结构变量的数据。,2.结构变量的初始化,与基本类型变量一样,结构变量可以在定义时赋初值,具体格式如下:struct 结构体类型名 成员表列 结构变量=初值表,结构变量=初值表;或 struct 结构体类型名 成员表列;struct 结构体类型名 结构表列结构变量=初值表结构变量初始化的格式,与一维数组类似,但在结构变量的成员本身又是结构类型时,该成员的初值为一个初值表。例如,例题10.2中的stud1_score=“05000102”,“Wang qiang”,2006,12,20,90。提示:初值的数据类型,应与结构变量中相应成员所要求的一致,否则会出错。,10.3结构数组,由例题10.1定义的结构类型student _score只能存储一个学生的成绩数据,如果要存储一个班所有学生的成绩,则需要结构数组。10.3.1 结构体数组的定义与初始化1结构体数组的定义与定义结构类型变量的方法类似,但需要将其说明为数组。定义一个结构类型,并声明一个具有3个元素,数组名为stud的结构数组。struct stud_score char num9;char name11;float score;struct stud _score stud3/*间接定义结构体数组stud3*/,以上定义的结构体数组stud3中的每一个元素均为struct student_score类型数据。当然,也可以直接定义一个结构体数组stud3,例如:struct stud_score char num9;char name11;float score;stud3;注意:结构数组中的各元素及其成员在内存中都是连续存放的。,2结构体数组的初绐化,对结构体数组的初始化与其它类型的数组类似,当然,结构体数组初始化时要对其元素中的每一个成员初始化。例如对以上定义的结构数组进行初始化。struct stud_score char num9;char name11;float score;stud3=“05001001”,“Wang qiang”,90.0,“05001002”,“Xu chen”,85.5,“05001003”,“Zhang qing”,86.0;定义stud数组时,元素的个数也可以不指定,即写成如下形式:stud=,;,系统在编译时,根据给出初值结构体常量的个数来确定数组元素的个数。数组的初始化还可以用下列形式初始化:struct stud_ info char num9;struct stud_ info stud=,;因此,可以先声明结构类型,然后定义结构数组,在定义数组时初始化。3结构数组的应用结构数组的引入为存储和处理多个同类型的结构体类型变量带来方便。,例题10.3结构数组的应用。定义、初始化结构数组,并输出数组元素。struct date int year;int month;int day;struct stud_ info/*定义结构类型stud_info*/char num9;/*用于存放学生的学号成员*/char name11;/*用于存放学生姓名成员*/char sex3;/*用于存放学生的性别成员*/struct date birthday;/*用于存放学生生日成员*/stud4=“05001001”,“王强”,“男”,1984,3,10,“05001002”,“李莉”,“女”,1983,12,10,“05001003”,“张芹”,“女”,1984,6,10,“05001004”,“徐诚”,“男”,1983,2,15;main()int i;/*打印表头,“”表示1个空格*/printf(“学号姓名性别出生日期n”);/*输出学生信息*/for(i=0;i4;i+)printf(“%-9s”,studi.num);printf(“%-11s”,studi.name);printf(“%-5s”,studi.sex);printf(“%d.%d.%dn”,studi.birthday.year,studi.birthday.month,studi.birthday.day);,运行结果如下:学号 姓名 性别 出生日期05001001 王强 男 1984.3.10 05001002 李莉 女 1983.12.10 05001003 张芹 女 1984.6.10 05001004 徐诚 男 1983.2.15,10.3.2 指向结构体类型变量的指针,一个结构体变量是由多个成员组成,而这些成员在内存中是连续存放的,一个结构变量的地址指的是该结构变量的首地址。所谓指向结构体类型变量的指针就是结构体变量存储的首地址。即:结构变量在内存中的起始地址称为结构变量的指针。如:struct stud_info*p;说明p是指向结构stud_info类型变量的指针。例题10.4使用指向结构变量的指针来访问结构变量的各个成员。/*例题原代码文件名:LT10_4.C*/struct date int year;int month;int day;,struct stud_info/*定义结构类型stud_info*/char num9;/*用于存放学生的学号成员*/char name11;/*用于存放学生姓名成员*/char sex3;/*用于存放学生的性别成员*/struct date birthday;/*用于存放学生生日成员*/;struct stud_info stud=“05001001”,“王强”,“男”,1984,3,10;main()struct stud_info*p_st=,运行结果如下:学号:05001001姓名:王强性别:男出生日期:1984-3-10,通过指向结构变量的指针来访问结构变量的成员,与直接使用结构变量的效果一样。一般地说,如果指针变量pointer已指向结构变量,则以下三种形式等价:结构变量名.成员pointer-成员(*pointer).成员 提示:(1)在格式中,分量运算符左侧的运算对象,只能是结构变量,不能是指针变量。(2)在格式中,减号“-”与大于号“”组成指向运算符“-”,指向运算符左侧的运算对象,只能是指向结构变量(或结构数组)的指针变量,而不能是结构变量,否则都出错。另外,指向运算符“-”中的符号“-”和“”之间不能有空格。(3)在格式中,“*pointer”外面的括号不能省!,因为分量运算符“.”的优先级高于指针运算符“*”,如果不加括号,则变成了*(pointer.成员),因而产生语法错误。,10.3.3 指向结构数组的指针,现在我们知道,定义一指针变量,用来指向一个结构变量,此时指针变量的值就是所指向的结构变量的首地址。当然,指针变量也可用来指向结构数组中的元素。如果用指针变量来指向结构数组元素,同样也可以达到方便访问结构数组元素及元素中成员的目的。例题10.5使用指针来访问结构数组的元素。/*例题原代码文件名:LT10_5.C*/struct date int year;int month;int day;,struct stud_info/*定义结构类型stud_info*/char num9;/*用于存放学生的学号成员*/char name11;/*用于存放学生姓名成员*/char sex3;/*用于存放学生的性别成员*/struct date birthday;/*用于存放学生生日成员*/;/*定义并初始化结构数组stud*/struct stud_info stud4=“05001001”,“王强”,“男”,1984,3,10,“05001002”,“李莉”,“女”,1983,12,10,“05001003”,“张芹”,“女”,1984,6,10,“05001002”,“徐诚”,“男”,1983,12,10;,main()struct stud_info*p_stu=stud;/*定义指针变量p_stu,并使其指向结构数组stud*/int i=0;/*打印表头*/printf(“学号姓名性别出生日期n”);/*输出所有学生信息*/for(i=0;inum,p_stu-name,p_stu-sex);printf(“%4d.%2d.%2dn”,p_stu-birthday.year,p_stu-birthday.month,p_stu-birthday.day);,程序运行结果与例题10.3相同。,10.3.4 指向结构数据的指针作函数参数,例题10.6编写一个output函数,要求在主函数中通过调用output函数,来实现输出stud结构数组各元素内容的目的。struct date int year;int month;int day;struct stud_ info char num9;char name10;char sex3;struct date birthday;,/*定义并初始化一个外部结构数组stud*/struct stud_info stud4=05001001,”王强”,”男”,1984.3.10,05001002,”李莉”,”女”,1983.12.10,05001003,”张芹”,”女”,1984.6.10,05001002,”徐诚”,”男”,1983.12.10;/*主函数main()*/main()void output();/*函数说明*/int i=0;/*打印表头*/printf(“学号姓名性别出生日期n”);/*输出内容*/for(;i4;i+)output(stud+i);printf(“n”);,void output(struct stud_info*p_stu)printf(“%-9s%-11s%-5s”,p_stu-num,p_stu-name,p_stu-sex);printf(“%4d.%2d.%2dn”,p_stu-birthday.year,p _stu-birthday.month,p_stu-birthday.day);本例题是用指针变量*p_stu作为形式参数,通过循环实参传递的是数组stud4各元素的首地址值。,10.4链表及其应用,链表的概念链表结构作为一种常用的、能够实现动态存储分配的数据结构。它根据需要分配存储空间,以避免内存的浪费。链表的定义:链表是一种数据结构,它由这样的一组结点(node)的序列组成,其中每个结点(除最后一个结点之外)总是与它后面结点相链接。图10-1是一个最简单的单链表结构:,由图10-1可以知道:(1)头指针变量head指向链表的首结点。(2)每个结点由2个域组成:数据域存储结点本身的信息。指针域指向后继结点的指针。(3)尾结点的指针域置为“NULL(空)”,作为链表结束的标志。链表中各元素在内存中可以不连续存放。因此,要访问链表中一个元素,必须要知道其上一个元素,由上一个元素提供的该元素的地址,才能访问这个元素,所以要不知道一个链表的头节点(头指针head)的地址,则就无法访问整个链表。,创建链表,创建链表是指生成一个新的空链表,并依次往新链表中插入若干结点,且保持所有结点间的前驱和后继之关系。系统提供了以下一些函数,以帮助用户创建链表。1创建链表相关的函数(1)malloc函数C语言提供的一个库函数malloc(),其功能是向系统申请一片地址连续的存储空间(字节数为LEN),用于存放一个新的结点。函数malloc()的原型为:void*malloc(unsigned size)malloc是有参函数,调用该函数时的实参通常是要求分配存储空间的字节数,所以是无符号数。函数的返回值是指向分配到的连续存储空间首地址的一个指针。,(2)free函数free函数的原型为:void free(void*p);该函数的作用是释放由p指向的一片连续的内存存储空间,让这部分区域被其它变量使用。p是要释放的这片存储空间的首地址,是一个指针。2创建链表的先决条件:(1)根据需要创建的链表的结点的结构构造一结构体数据类型(2)必须有一个头指针(3)因为链表存放学生数据的结点在内存中是不连续的,并且还没有事先决定,所以应使用malloc技术解决结点生成问题。(4)各结点的链接是通过地址赋值实现,所以实现地址赋值操作时将采用指针变量实现。,3新建链表举例例题10.7编写一函数建立一个有3名学生数据的单向动态链表#define NULL 0/*NULL代表0,用它表示空地址*/#define LEN sizeof(struct student)/*定义链表中结点的长度*/struct student long num;float score;struct student*next;int n;/*n为全局变量,本文件模块中各函数均可使用它*/struct student*creat(void)struct student*head;struct student*p1,*p2;n=0;,p1=p2=(struct student*)malloc(LEN);/*开辟一个长度为LEN的新结点。使malloc()函数返回的指针强制转换为指向struct student 类型数据的指针,赋值给p1、p2,即p1、p2指向新结点*/scanf(“%ld,%f”,/*函数返回链表的头地址*/,说明:,(1)函数首部*creat(void)的void表示没有形参,不需要进行数据传递。main()函数可以调用它.(2)malloc函数开辟一个长度为LEN的内存区,LEN前面已经定义为sizeof(struct student)即结构体的长度。Malloc带回的是不指向任何类型数据的指针。而p1、p2是指向struct student类型数据的指针变量,因此必须用强制类型转换的方法使malloc返回的指针转换为指向struct student类型数据的指针。在malloc(LEN)之前加“(struct student*)就是起这个作用。此处*表示转换成指向struct student类型的指针。这样才能使p1、p2指向它。(3)head的值为NULL,这是链表为空时的情况。从键盘输入一个学生的数据给第一个结点时,如果输入0约定表示建立链表的过程完成。如果输入学号不为0,则进入循环建立链表。(4)n是结点的个数。(5)这个算法思路是让p1指向新开辟的结点,p2指向链表中最后一个结点,把p1所指的结点连接在p2所指的结点后面,用p2-next=p1来实现。,对链表的操作,1.输出链表依次输出链表结点数据比较容易,首先知道head头指针的值,设一个指针变量p,先指向第一个结点,输出p所指的结点,然后使p后移一个结点,再输出,直到链表的尾结点。例题10.8输出例题10.7中创建的链表。void output(struct student*head)struct student*p;p=head;if(head!=NULL)do printf(%ld%5.1fn”,p-num,p-score);p=p-next;while(p!=NULL);,2删除链表中指定的结点对于已经建立好的链表中的某个结点进行删除的方案:以指定学号作为搜索要删除结点的标志,此学号用函数形参num接收从主函数传来的实际值。定义p1、p2为两结构体类型的指针变量,p1用来搜索欲删除结点,采用p1=p1-next;语句实现搜索,p2紧随其后,以p2=p1;实现。当p1找到要输出结点,需考虑两种情况:(1)当欲删除的结点是头结点时,采用技术为:head=p1-next;见图10-2(a)、图10-2(b)。(2)当欲删除的结点是尾结点或链中其他结点时,采用技术为:p2-next=p1-next;见图10-3(a)、图10-3(b)。,例题10.9删除例题10.8中创建的链表中一个指定学号的结点。/*例题原代码文件名:LT10_9.C*/struck student*erase(struck student*head,long num)struck student*p1,*p2;if(head=NULL)printf(“nlist null!n”);goto end;/*链表为空,结束操作*/p1=headwhile(p1-num!=num/*p2紧跟p1,p1下移一个结点*/if(p1-num=num)/*找到了要删除的结点*/,if(p1=head)head=p1-next;/*若p1指向的是头结点,则把第二个结点地址赋给head*/else p2-next=p1-next;/*否则下一个结点地址赋给前一个结点地址*/printf(“delete:%ldn”,num);n=n-1;/*n为全局变量表示结点的个数*/elseprintf(“%ld not been found!n”,num);end:return(head);/*返回删除后的链表头指针*/,10.5共用型和枚举型,共用型将若干个不同类型的变量存储在同一段内存空间的结构,称为共用型数据结构。1共用体类型变量的定义方式共用体类型变量的定义使用关键字union,其定义方式类似于结构变量的定义方法,通常有以下两种方式:(1)先构造共用体数据类型,再定义共用体数据类型变量该方式定义格式如下:union 共用体数据类型名 类型标识符 成员名;类型标识符 成员名;;union 共用体数据类型名 变量名表列,例如:union data int i;char ch;float f;union data u1,u2;(2)构造共用体数据类型的同时定义共用体数据类型变量union 共用体数据类型名/*此时数据类型名可缺省*/类型标识符 成员名;类型标识符 成员名;变量名表列;例如:union data/*此时data可缺省*/int i;char ch;float f;u1,u2;,2共用体变量的引用与访问结构体数据类型的变量相同,对共用体数据类型变量只能访问其成员,而不能访问共用体数据类型变量。访问共用体数据类型变量成员的格式为:共用体数据类型名.成员名例如:u1.i、u1.ch;u2.i、u2.ch。3共用体类型数据的特点由于共用体数据类型的变量各成员被存储在同一内存空间中,因此共用变量的有如下特点:(1)在共用体有效作用范围内,对共用体数据类型的变量或变量的任何成员取地址得到的结果相同。例如,&u1、&u1.i和&u1.ch的结果相同。(2)由于共用体数据类型变量各成员共同使用同一个存储空间,所以该存储空间只能被各个成员分别使用,即在某一时刻,对变量的某个成员赋值后,该成员就独占了此存储空间,如果再对其他成员赋值,则前一成员的值就被覆盖掉了,所以对共用体变量的多个成员赋值时起作用的总是最后一个。也不能对共用体数据类型变量进行初始化操作。,也不能对共用体数据类型变量进行初始化操作。(3)共用体数据类型的变量不能作为函数形参,函数也不能返回共用体数据类型的数据,但可以使用指向共用体数据类型数据的指针变量作为函数的形参,并且函数也能返回指向共用体数据类型数据的指针。(4)在构造共用体数据类型时可以用结构体数据类型的成员,同样,在定义结构体数据类型时也可以包含共用体数据类型的成员。枚举型当一个变量只有几个可能的取值时,就可以定义为枚举型。枚举型变量的值只能是列举出来的值的范围内。1定义枚举类型定义枚举类型的关键字是enum,其格式如下:enum 枚举类型名 取值表;/*取值表中的名数据项用“,”隔开*/例如,enum weekdaysun,mon,tue,wed,thu,fri,sat;,2声明枚举型变量定义了枚举类型,就可以声明枚举型变量,与结构体变量声明方法类似,也有以下两种:(1)先定义枚举类型,再声明枚举型变量。例如:enum weekday sun,mon,tue,wed,thu,fri,sat;enum weekday workday,freeday;(2)在定义枚举类型同时声明枚举型变量。例如:enum weekdays/*此时枚举类型名为可选项*/sun,mon,tue,wed,thu,fri,satworkday,freeday;3说明(1)枚举型变量的取值表中的值称为枚举元素,由于C编译系统中将枚举元素按常量处理,故又称枚举常量。正因为枚举元素是常量,所以它们不能被赋值。,(2)枚举元素作为常量是有值的,C编译系统按定义时的顺序使它们的值为0,1,2,。例如,在enum weekday sun,mon,tue,wed,thu,fri,sat中,sun的值为0,mon的值为1,而sat的值为6。如果有赋值语句:freeday=satfreeday变量的值为6。可以输出这个整数。如:printf(“%d”,freeday);运行的结果是6。也可以改变枚举元素的值,在定义时由用户指定,如:enum weekday sun=7,mon=1,tue,wed,thu,fri,sat workday,week-end;定义sun为7,mon=1,从tue开始以后顺序加1,tue=2,wed=3 sat为6。,(3)枚举元素的值可以进行比较,用来做判断。比较规则为:顺序号大者为大。if(weekdays sun)枚举值的比较规则是按其在定义时的顺序号比较。如果定义时未指定,则第一个枚举元素的值认作0。如:wed mon为真,thu sat为假。(4)一个整数不能直接赋给一个枚举变量。如:workday=3是错误的。它们属于不同类型。应进行强制类型转换才能赋值。如:workday=(enum weekday)3;它相当于将顺序号为3的枚举元素赋给了workday,即等同于:workday=wed;甚至可以是表达式。如:workday=(enum weekday)(5-2);,10.6定义已有类型的别名,在C语言中,可以用typedef关键字来为系统已经有的数据类型定义别名,该别名与标准类型名一样,可以用来定义相应的变量。例如:typedef int INTEGER;/*指定别名INTEGER代表int*/typedef float REAL;/*指定REAL代表float*/INTEGER x,y;等价于int x,y;REAL a,b;等价于float a,b;也可以声明一个新的别名DATE代表一个结构体类型。例如:typedef struct dateint month;int day;int year;DATE1;,下面可以用DATE1定义变量DATE1 birthday;/*定义是结构体变量*/DATE1*p;/*是指向DATE1结构体的指针变量*/例题10.10分析下面程序运行结果/*例题原代码文件名:LT10_10.C*/typedef int INTEGER;typedef float REAL;main()INTEGER x=5;/*相当于int x=5*/REAL f;/*相当于float f*/f=(REAL)x/10;/*将x强制转换成实型,再除以10*/printf(“%f”,f);,运行结果:0.500000,说明:(1)typedef语句不能创造新的类型,只能为已有的类型增加一个类型别名。(2)typedef语句只能用来定义类型名,而不能用来定义变量。,

    注意事项

    本文(《结构共用型和》PPT课件.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开