书签 分享 收藏 举报 版权申诉 / 31
上传文档赚钱

类型C-程序设计教程第7章.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:3376771
  • 上传时间:2022-08-25
  • 格式:PPT
  • 页数:31
  • 大小:615KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《C-程序设计教程第7章.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    程序设计 教程
    资源描述:

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

    2、名2;成员类型成员类型n 成员名成员名n;变量名变量名1,变量名变量名2,变量名变量名n;n先定义结构体类型再定义变量先定义结构体类型再定义变量struct 结构体类型名结构体类型名 变量名变量名1,变量名变量名2,变量名变量名n;n直接定义结构体变量直接定义结构体变量struct成员类型成员类型1 成员名成员名1;成员类型成员类型2 成员名成员名2;成员类型成员类型n 成员名成员名n;变量名变量名1,变量名变量名2,变量名变量名n;2结构体变量的初始化结构体变量的初始化nstruct date int year;int month;int day;birthday1=1998,11,22,b

    3、irthday2=2003,10,23;nstruct date int year;int month;int day;struct date birthday1=1998,11,22;date birthday2=2003,10,23;nstruct int year;int month;int day;birthday1=1998,11,22,birthday2=2003,10,23;3结构体变量的使用结构体变量的使用n结构体变量的运算结构体变量的运算具有相同类型的结构体变量可以进行赋值运算,但不能直具有相同类型的结构体变量可以进行赋值运算,但不能直接进行输入接进行输入/输出输出。n结构体

    4、成员的使用结构体成员的使用结构体变量名成员名结构体变量名成员名例如例如:cout成员名成员名7.1.2 结构体数组的定义、初始化及使用结构体数组的定义、初始化及使用1结构体数组结构体数组的定义的定义nstruct date int year;int month;int day;birthday3;nstruct date int year;int month;int day;date birthday3;nstruct int year;int month;int day;birthday3;2结构体数组的初始化结构体数组的初始化struct date int year;int month;i

    5、nt day;birthday3=1998,11,22,2003,10,23,2008,1,7;3结构体数组的使用结构体数组的使用结构体数组中的每个元素都是一个结构体类型数据。结构结构体数组中的每个元素都是一个结构体类型数据。结构体数组是通过下标变量引用结构体成员的体数组是通过下标变量引用结构体成员的。7.1.3 指向结构体变量的指针指向结构体变量的指针定义一个指向结构体变量的指针,那么该指针的值是结构体定义一个指向结构体变量的指针,那么该指针的值是结构体变量所占内存段的起始地址。通过指向结构体变量的指针,可以变量所占内存段的起始地址。通过指向结构体变量的指针,可以引用结构体变量中的成员:引用

    6、结构体变量中的成员:指针变量名成员名指针变量名成员名;例如例如:struct date int year;int month;int day;birthday1,birthday2;date*p;/定义指向结构体类型定义指向结构体类型date的指针的指针pp=&birthday1;/将结构体变量的起始地址赋值给指针将结构体变量的起始地址赋值给指针pp-month=5;/通过指针引用结构体变量的成员,并为其赋值通过指针引用结构体变量的成员,并为其赋值7.1.4 结构体作为函数参数结构体作为函数参数n值传递值传递用结构体变量名作为函数的实参,将结构体变量中的内容用结构体变量名作为函数的实参,将结构

    7、体变量中的内容全部顺序传递给形参。若在函数调用期间,形参的内容发生改全部顺序传递给形参。若在函数调用期间,形参的内容发生改变,将不会影响主调函数中相对应的实参。变,将不会影响主调函数中相对应的实参。n地址传递地址传递用指向结构体变量的指针作为函数实参,将结构体变量的用指向结构体变量的指针作为函数实参,将结构体变量的地址传递给形参。地址传递给形参。n引用传递引用传递用结构体变量的引用变量作为函数参数。用结构体变量的引用变量作为函数参数。7.2 共用体共用体union 共同体类型名共同体类型名成员类型成员类型1 成员名成员名1;成员类型成员类型2 成员名成员名2;成员类型成员类型n 成员名成员名n

    8、;n在定义结构体类型的同时定义变量在定义结构体类型的同时定义变量7.2.1 共用体变量的定义与初始化共用体变量的定义与初始化例如:例如:union data int a;float b;char c;x=123;n先定义结构体类型再定义变量先定义结构体类型再定义变量例如:例如:union data float b;int a;char c;data y=12.3;n直接定义结构体变量直接定义结构体变量例如:例如:union char c;int a;float b;z=c;7.2.2 共用体变量的使用共用体变量的使用相同类型的共用体变量可以进行赋值运算,对共用体变量相同类型的共用体变量可以进行

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

    10、E,ORANGE,PEAR,GRAPE,PEACH;枚举元素是常量,其本身是有值的,如果枚举常量在定义时枚举元素是常量,其本身是有值的,如果枚举常量在定义时没有指定其对应的值,系统将按定义时的顺序自动为它们赋值。没有指定其对应的值,系统将按定义时的顺序自动为它们赋值。例如例如:enum FruitAPPLE=1,ORANGE=2,PEAR=3,GRAPE=4,PEACH=5;enum FruitAPPLE=4,ORANGE=0,PEAR,GRAPE,PEACH;7.3.1 枚举类型变量的定义与初始化枚举类型变量的定义与初始化n可以在定义枚举类型的同时定义枚举类型变量并初始化。可以在定义枚举类型

    11、的同时定义枚举类型变量并初始化。例如:例如:enum FruitAPPLE,ORANGE,PEAR,GRAPE,PEACHf=PEACH;/定义枚举变量定义枚举变量fn也可以先定义枚举类型,再定义枚举变量并初始化。也可以先定义枚举类型,再定义枚举变量并初始化。例如:例如:enum FruitAPPLE,ORANGE,PEAR,GRAPE,PEACH;Fruit f1=ORANGE,f2;/定义定义2个枚举变量个枚举变量f1和和f2,并为,并为f1赋初值赋初值7.3.2 枚举类型变量的使用枚举类型变量的使用n枚举类型可以看作是一个整型常量的集合,枚举变量的值枚举类型可以看作是一个整型常量的集合,

    12、枚举变量的值为该枚举类型定义中的某个常量的值。为该枚举类型定义中的某个常量的值。例如:例如:enum FruitAPPLE,ORANGE,PEAR,GRAPE,PEACHf1;f1=ORANGE;coutGRAPE)/f1值为值为1,GRAPE值为值为3,故关系表达式的值为,故关系表达式的值为falsen枚举变量可以与整型数据之间进行类型转换,但不能将一枚举变量可以与整型数据之间进行类型转换,但不能将一个整型数据直接赋给一个枚举型变量,应先进行强制类型个整型数据直接赋给一个枚举型变量,应先进行强制类型转换使等号两边的类型相同才能赋值。转换使等号两边的类型相同才能赋值。例如:例如:Fruit f

    13、2;f2=Fruit(2);/将序号为将序号为2的元素赋值给的元素赋值给f2或或f2=(Fruit)2;7.4 typedef声明声明typedef声明用于为已存在的数据类型定义一个新的类型名称。声明用于为已存在的数据类型定义一个新的类型名称。typedef 类型名称类型名称 类型标识符类型标识符;例如:例如:typedef int INTEGER;/用标识符用标识符INTEGER代替代替C+中的标准数据类型中的标准数据类型inttypedef struct/用用DATE表示定义的结构体类型表示定义的结构体类型int year;int month;int day;DATE;DATE birth

    14、day;/用用DATE定义结构体变量定义结构体变量birthday另外,还可以用另外,还可以用typedef为数组、指针等定义新的类型名称为数组、指针等定义新的类型名称。例如:例如:typedef int COUNT10;/用用COUNT定义长度为定义长度为10的整型数组的整型数组COUNT a;/定义长度为定义长度为10的整型数组的整型数组atypedef char*STRING;/定义定义STRING为字符指针为字符指针STRING p;/用用STRING定义字符指针变量定义字符指针变量ptypedef int(*MAX)(int a,int b);/定义定义MAX为指向函数的指针为指向函

    15、数的指针MAX p;/用用MAX定义指针变量定义指针变量p综合实例综合实例1 输出教师信息输出教师信息/实例实例7-1.cpp#include union cf/共用体类型共用体类型 char clname30;/所讲课程所讲课程int num;/论文数目论文数目;struct teachers/结构体类型结构体类型 int num;/编号编号char name20;/姓名姓名char zc;/职称,教师为职称,教师为l,教授为,教授为punion cf x;/结构成员变量结构成员变量x为共用体类型,可变字段为共用体类型,可变字段teach3;/定义结构体数组定义结构体数组teachvoid

    16、main()int i;for(i=0;i3;i+)coutinput num:teachi.num;/输入教师号输入教师号coutinput name:teachi.name;/输入教师名字输入教师名字coutinput zc:teachi.zc;/输入教师职称输入教师职称if(teachi.zc=l)coutinput clnameteachi.x.clname;else if(teachi.zc=p)/如果职称是教授,则输入论文数目。如果职称是教授,则输入论文数目。coutinput thesis_num:teachi.x.num;else coutinput data errorend

    17、l;coutnumtnametzctclname/numendl;for(int j=0;j3;j+)coutteachj.numtteachj.nametteachj.zct;if(teachj.zc=l)coutteachj.x.clnameendl;else if(teachj.zc=p)coutteachj.x.numendl;else coutdata errorendl;input num:1021 input name:陈杰陈杰 input zc:p input thesis_num:15 input num:1022 input name:方平方平 input zc:l 测试数

    18、据与运行结果:测试数据与运行结果:input clname:高等数学高等数学 input num:1023 input name:贾小亮贾小亮input zc:l input clname:大学体育大学体育 num name zc clname/num1021 陈杰陈杰 p151022 方平方平 l高等数学高等数学1023 贾小亮贾小亮 l大学体育大学体育综合实例综合实例2 2 输出每种动物的信息输出每种动物的信息/实例实例7-2.cpp#include struct BIRTHDAY/定义结构体类型定义结构体类型BIRTHDAY int YEAR;int MONTH;int DAY;enum

    19、 COLORWHITE,BLACK,YELLOW;/定义枚举类型定义枚举类型COLORstruct ANIMAL/定义结构体类型定义结构体类型ANIMAL float weight;BIRTHDAY birthday;COLOR color;cat,dog;/定义结构体变量定义结构体变量cat和和dogvoid GetColor(int c)/根据用户输入,输出颜色信息根据用户输入,输出颜色信息 switch(c)case 0:coutWHITEendl;break;case 1:coutBLACKendl;break;case 2:coutYELLOWendl;break;void main

    20、()cat.weight=100;/为结构体变量为结构体变量cat赋初值赋初值cat.birthday.YEAR=2009;cat.birthday.MONTH=8;cat.birthday.DAY=14;cat.color=(COLOR)2;/枚举变量与整型数据之间进行类型转换枚举变量与整型数据之间进行类型转换coutinput weight birthday(year month day)color endldog.weight;/为结构体变量为结构体变量dog赋初值赋初值cindog.birthday.YEAR;cindog.birthday.MONTH;cindog.birthday.

    21、DAY;int dcolor;cindcolor;dog.color=(COLOR)dcolor;/枚举变量与整型数据之间进行类型转换枚举变量与整型数据之间进行类型转换coutdog:endlweight:dog.weightendlbirthday:dog.birthday.YEAR.dog.birthday.MONTH.dog.birthday.DAYendlcolor:;GetColor(dog.color);coutcat:endlweight:cat.weightendlbirthday:cat.birthday.YEAR.cat.birthday.MONTH.cat.birthday.DAYendlcolor:;GetColor(cat.color);input weight birthday(year month day)colorWHITE:0BLACK:1YELLOW:2525 2003 6 5 1 dog:weight:525birthday:2003.6.5color:BLACKcat:weight:100birthday:2009.8.14color:YELLOW测试数据与运行结果:测试数据与运行结果:

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:C-程序设计教程第7章.ppt
    链接地址:https://www.163wenku.com/p-3376771.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库