《c语言程序创新设计基础》构造数据类型.pptVIP

《c语言程序创新设计基础》构造数据类型.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
7.7.2 共用体变量的赋值和引用 #includestdio.h main() { struct { char name[10]; int age; char job; union { int clas; char office[10]; } dept; }info[2]; int n,i; 7.7.2 共用体变量的赋值和引用 for(i=0;i2;i++) { printf(input name,age,job and department\n); scanf(%s %d %c,info[i].name,info[i].age,info[i].job); if(info[i].job==s) scanf(%d,info[i].dept.clas); else scanf(%s,info[i].dept.office); } printf(name\tage\tjob\tclass/office\n); 7.7.2 共用体变量的赋值和引用 for(i=0;i2;i++) { if(info[i].job==s) printf(%s\t%3d\t%3c\t %d\n, info[i].name,info[i].age,info[i].job,info[i].dept.clas); else printf(%s\t%3d\t%3c\t%s\n, info[i].name,info[i].age,info[i].job,info[i].dept.office); } } 7.8 枚举类型 本节内容 7.8.2 枚举类型变量的赋值和引用 7.8.1 枚举类型枚举变量的定义 7.8 枚举类型 在实际处理问题中,经常会有取值被限定在一个有限的范围内的类型出现。例如,一个星期内只有七天,一年只有十二个月等等。为了便于对这些类型数据的处理,C语言提供了一种称为“枚举”的类型。利用枚举类型,可以直观的体现枚举变量的含义和取值限制,在定义枚举类型时,列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。 7.8.1 枚举类型枚举变量的定义 7.8.1.1 枚举类型的定义 枚举类型定义的一般形式为: enum 枚举名 { 枚举值表 }; 在枚举值表中罗列出所有可用值,称为枚举元素。 enum weekday { sun,mon,tue,wed,thu,fri,sat }; 7.8.1.2 枚举变量的定义 同结构体和共用体一样,枚举变量也可用不同的方式定义: enum weekday { … }; enum weekday a,b,c; enum weekday { … }a,b,c; enum { … }a,b,c; typedef enum weekday { … }week; week a,b,c; 7.8.2 枚举类型变量的赋值和引用 在C语言中对枚举类型数据有如下规定: ⑴枚举值是常量,不是变量。所以不能在程序中用赋值语句再对它赋值。例如对枚举weekday的元素再作以下赋值:“sun=5;mon=2;sun=mon;” 都是错误的。 ⑵枚举元素本身由系统定义了一个表示序号的数值,从0 开始顺序定义为0,1,2…。如在weekday中,sun值为0,mon值为1,…,sat值为6。 7.8.2 枚举类型变量的赋值和引用 #includestdio.h main() { enum weekday { sun,mon,tue,wed,thu,fri,sat } a,b,c; a=sun; b=mon; c=tue; printf(%d,%d,%d,a,b,c); } 7.8.2 枚举类型变量的赋值和引用 可以把某个枚举元素规定为指定的整常数: enum weekday { sun,mon,tue,wed=10,thu,fri,sat }; 编译程序对wed之前的枚举元素照常从0开始,递增赋予整常数,即sun的值为0,mon的值为1,tue的值为2,并对wed赋予指定值10,然后对wed之后的值在wed的基础上递增赋值,即thu的值为11,fri为12,sat为13。 7.8.2 枚举类型变量的赋值和引用 ⑶只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。 如: “a=sum;b=mon;”是正确的。 而:“a=0;b=1;”是错误的。 如一定要把数值赋予枚举变量,则必须用强制类型转换,如:“a=(enum weekday)2;”其意义是将顺序号为2的枚举元素赋予枚举变量a,相当于:

文档评论(0)

sandaolingcrh + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档