C--程序设计教程第7章

PPT
  • 阅读 67 次
  • 下载 0 次
  • 页数 31 页
  • 大小 615.000 KB
  • 2022-11-12 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档25.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
C--程序设计教程第7章
可在后台配置第一页与第二页中间广告代码
C--程序设计教程第7章
可在后台配置第二页与第三页中间广告代码
C--程序设计教程第7章
可在后台配置第三页与第四页中间广告代码
C--程序设计教程第7章
C--程序设计教程第7章
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 31
  • 收藏
  • 违规举报
  • © 版权认领
下载文档25.00 元 加入VIP免费下载
文本内容

【文档说明】C--程序设计教程第7章.ppt,共(31)页,615.000 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-2196.html

以下为本文档部分文字说明:

本章内容提要7.1结构体7.2共用体7.3枚举类型7.4typedef声明7.1结构体struct结构体类型名{成员类型1成员名1;成员类型2成员名2;…成员类型n成员名n;};定义结构体类型的一般形式为:在定义结构体类型的同时定义变量7.1.1结构体变量的定义、初始化及使用1.

结构体变量的定义struct结构体类型名{成员类型1成员名1;成员类型2成员名2;…成员类型n成员名n;}变量名1,变量名2,…,变量名n;先定义结构体类型再定义变量[struct]结构体类型名变量名1,变量名2,…,变量名n;直接定义结构体变量struct{成员类型1成员名1

;成员类型2成员名2;…成员类型n成员名n;}变量名1,变量名2,…,变量名n;2.结构体变量的初始化structdate{intyear;intmonth;intday;}birthday1={1998,11,22},birth

day2={2003,10,23};structdate{intyear;intmonth;intday;};structdatebirthday1={1998,11,22};datebirthday2={200

3,10,23};struct{intyear;intmonth;intday;}birthday1={1998,11,22},birthday2={2003,10,23};3.结构体变量的使用结构体变量的运算具有相同类型的结构体变量可以进行赋值运算,但不能直接进行输入/输出。结构体成员

的使用结构体变量名.成员名例如:cout<<birthday1.year;//输出结构体变量birthday1的成员year的值birthday1.month++;//结构体变量birthday1的成员month的值加1temp=birthday1.y

ear-birthday2.year;//birthday1的成员year的值与birthday2的成员year的值相减另外,也可以定义一个指向该结构体的指针变量指针变量名->成员名7.1.2结构体数组的定义、初始化及使用1.结构体数组的定义structdate{

intyear;intmonth;intday;}birthday[3];structdate{intyear;intmonth;intday;};datebirthday[3];struct{intyear;i

ntmonth;intday;}birthday[3];2.结构体数组的初始化structdate{intyear;intmonth;intday;}birthday[3]={{1998,11,22},{2003,10,23},{2008,1,7}};3.结构体数组的使

用结构体数组中的每个元素都是一个结构体类型数据。结构体数组是通过下标变量引用结构体成员的。7.1.3指向结构体变量的指针定义一个指向结构体变量的指针,那么该指针的值是结构体变量所占内存段的起始地址。通过指向结构体变量的指针,可以引用结构体变量中的成员:指针

变量名->成员名;例如:structdate{intyear;intmonth;intday;}birthday1,birthday2;date*p;//定义指向结构体类型date的指针pp=&birthday1;/

/将结构体变量的起始地址赋值给指针pp->month=5;//通过指针引用结构体变量的成员,并为其赋值7.1.4结构体作为函数参数值传递用结构体变量名作为函数的实参,将结构体变量中的内容全部顺序传递给形参。若在函数调用期间,形参的内容发

生改变,将不会影响主调函数中相对应的实参。地址传递用指向结构体变量的指针作为函数实参,将结构体变量的地址传递给形参。引用传递用结构体变量的引用变量作为函数参数。7.2共用体union共同体类型名{成员类型1成员名1;成员类型2成员名2;…成

员类型n成员名n;};在定义结构体类型的同时定义变量7.2.1共用体变量的定义与初始化例如:uniondata{inta;floatb;charc;}x={123};先定义结构体类型再定义变量例如:uniondata{floatb;inta;charc;}

datay={12.3};直接定义结构体变量例如:union{charc;inta;floatb;}z={'c'};7.2.2共用体变量的使用相同类型的共用体变量可以进行赋值运算,对共用体变量中的成员可以进行各种运算。共同体变量名.成员名例如:x.a

//引用共同体变量x中的整型成员ay.b//引用共同体变量x中的浮点型成员b7.3枚举类型如果一个变量只有有限个可能的取值,可以将这些值一一列举出来,定义为枚举类型。枚举类型是由若干个常量组成的有限集合。enum枚举类型名{枚举常量列表};例如:enumFr

uit{APPLE,ORANGE,PEAR,GRAPE,PEACH};枚举元素是常量,其本身是有值的,如果枚举常量在定义时没有指定其对应的值,系统将按定义时的顺序自动为它们赋值。例如:enumFruit{APPLE=1,ORANGE=2,PEAR=3,GRAPE=4,P

EACH=5};enumFruit{APPLE=4,ORANGE=0,PEAR,GRAPE,PEACH};7.3.1枚举类型变量的定义与初始化可以在定义枚举类型的同时定义枚举类型变量并初始化。例如:enumF

ruit{APPLE,ORANGE,PEAR,GRAPE,PEACH}f=PEACH;//定义枚举变量f也可以先定义枚举类型,再定义枚举变量并初始化。例如:enumFruit{APPLE,ORANGE,PE

AR,GRAPE,PEACH};Fruitf1=ORANGE,f2;//定义2个枚举变量f1和f2,并为f1赋初值7.3.2枚举类型变量的使用枚举类型可以看作是一个整型常量的集合,枚举变量的值为该枚举类型定义中的某个常量的值。例如:enumF

ruit{APPLE,ORANGE,PEAR,GRAPE,PEACH}f1;f1=ORANGE;cout<<f1;//该语句的结果是1枚举变量可以进行算术运算、赋值运算、关系运算和逻辑运算等。例如:enumFruit{APPLE,ORANGE,PEAR,GRAPE,PEACH}f1;f

1=ORANGE;if(f1>GRAPE)//f1值为1,GRAPE值为3,故关系表达式的值为false…枚举变量可以与整型数据之间进行类型转换,但不能将一个整型数据直接赋给一个枚举型变量,应先进行强制类型转换使等号两边的类型相同才能

赋值。例如:Fruitf2;f2=Fruit(2);//将序号为2的元素赋值给f2或f2=(Fruit)2;7.4typedef声明typedef声明用于为已存在的数据类型定义一个新的类型名称。typedef类型名称类型标识符;例如:typedefintINT

EGER;//用标识符INTEGER代替C++中的标准数据类型inttypedefstruct//用DATE表示定义的结构体类型{intyear;intmonth;intday;}DATE;DATEbirthday;//用D

ATE定义结构体变量birthday另外,还可以用typedef为数组、指针等定义新的类型名称。例如:typedefintCOUNT[10];//用COUNT定义长度为10的整型数组COUNTa;//定义长度为10的整型数组atypedefchar*STRING;//定义STRING

为字符指针STRINGp;//用STRING定义字符指针变量ptypedefint(*MAX)(inta,intb);//定义MAX为指向函数的指针MAXp;//用MAX定义指针变量p综合实例1输出教师信息//实例7-1.cpp#include<iostream.h>unioncf//共

用体类型{charclname[30];//所讲课程intnum;//论文数目};structteachers//结构体类型{intnum;//编号charname[20];//姓名charzc;//职称,教师为l,教授为punion

cfx;//结构成员变量x为共用体类型,可变字段}teach[3];//定义结构体数组teachvoidmain(){inti;for(i=0;i<3;i++){cout<<"inputnum:"<<endl;cin>>teach[

i].num;//输入教师号cout<<"inputname:"<<endl;cin>>teach[i].name;//输入教师名字cout<<"inputzc:"<<endl;cin>>teach[i].zc

;//输入教师职称if(teach[i].zc=='l'){cout<<"inputclname"<<endl;//如果职称是讲师,则输入所讲课程cin>>teach[i].x.clname;}elseif(teach[i].zc=='p')//如果职称是教授,则输入论文数目。{cout<<"

inputthesis_num:"<<endl;cin>>teach[i].x.num;}elsecout<<"inputdataerror"<<endl;}cout<<"num"<<'\t'<<"name"

<<'\t'<<"zc"<<'\t'<<"clname/num"<<endl;for(intj=0;j<3;j++){cout<<teach[j].num<<'\t'<<teach[j].name<<'\t'<<teach[j].z

c<<'\t';if(teach[j].zc=='l')cout<<teach[j].x.clname<<endl;elseif(teach[j].zc=='p')cout<<teach[j].x.num<<endl;elsecout<<"dataerror"<<end

l;}}inputnum:1021↙inputname:陈杰↙inputzc:p↙inputthesis_num:15↙inputnum:1022↙inputname:方平↙inputzc:l↙测试数据与运行结果:inputclname:高等数学↙inputnum:1023↙inputname

:贾小亮inputzc:l↙inputclname:大学体育↙numnamezcclname/num1021陈杰p151022方平l高等数学1023贾小亮l大学体育综合实例2输出每种动物的信息//实例7-2.cpp#include<iostream.h>structBIRTHDA

Y//定义结构体类型BIRTHDAY{intYEAR;intMONTH;intDAY;};enumCOLOR{WHITE,BLACK,YELLOW};//定义枚举类型COLORstructANIMAL//定义结构体

类型ANIMAL{floatweight;BIRTHDAYbirthday;COLORcolor;}cat,dog;//定义结构体变量cat和dogvoidGetColor(intc)//根据用户输入,输出颜色信息{switch(c){case0:cout<<"

WHITE"<<endl;break;case1:cout<<"BLACK"<<endl;break;case2:cout<<"YELLOW"<<endl;break;}}voidmain(){cat.weight=100;//为结构体变量cat赋初值cat.

birthday.YEAR=2009;cat.birthday.MONTH=8;cat.birthday.DAY=14;cat.color=(COLOR)2;//枚举变量与整型数据之间进行类型转换cout<<"inputweightbirth

day(yearmonthday)color"<<endl<<"WHITE:0\nBLACK:1\nYELLOW:2\n";cin>>dog.weight;//为结构体变量dog赋初值cin>>dog.birthday.YEAR;cin>>dog.birth

day.MONTH;cin>>dog.birthday.DAY;intdcolor;cin>>dcolor;dog.color=(COLOR)dcolor;//枚举变量与整型数据之间进行类型转换cout<<"dog:"<<endl<<"weight:"<<dog

.weight<<endl<<"birthday:"<<dog.birthday.YEAR<<"."<<dog.birthday.MONTH<<"."<<dog.birthday.DAY<<endl<<"color:";GetColor(dog.color);

cout<<"cat:"<<endl<<"weight:"<<cat.weight<<endl<<"birthday:"<<cat.birthday.YEAR<<"."<<cat.birthday.MONTH<<"."<<cat.birthday.DAY<<endl<<

"color:";GetColor(cat.color);}inputweightbirthday(yearmonthday)colorWHITE:0BLACK:1YELLOW:25252003651↙dog:weight:525birthday:2003.6.5color

:BLACKcat:weight:100birthday:2009.8.14color:YELLOW测试数据与运行结果:

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?