欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    结构体共用体枚举型.ppt

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

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

    结构体共用体枚举型.ppt

    第第1010章章 结构体与共用体结构体与共用体C C 语言程序设计语言程序设计1第第10章章 结构体、共用体与枚举型结构体、共用体与枚举型10.1 10.1 10.1 10.1 结构体结构体结构体结构体10.2 10.2 10.2 10.2 共用体共用体共用体共用体10.3 10.3 10.3 10.3 枚举类型与类型命名枚举类型与类型命名枚举类型与类型命名枚举类型与类型命名2023/2/222 一一一一个个个个学学学学生生生生的的的的信信信信息息息息有有有有学学学学号号号号、姓姓姓姓名名名名、性性性性别别别别、年年年年龄龄龄龄、住住住住址址址址、成绩成绩成绩成绩等。等。等。等。一一一一本本本本图图图图书书书书的的的的信信信信息息息息有有有有分分分分类类类类编编编编号号号号、书书书书名名名名、作作作作者者者者、出出出出版版版版社社社社、出版日期出版日期出版日期出版日期、价格价格价格价格、库存量库存量库存量库存量等。等。等。等。如何描述这些类型不同的相关数据?如何描述这些类型不同的相关数据?如何描述这些类型不同的相关数据?如何描述这些类型不同的相关数据?10.1 结构体结构体10.1.1 10.1.1 结构体与结构体类型的定义结构体与结构体类型的定义结构体与结构体类型的定义结构体与结构体类型的定义信息管理信息管理信息管理信息管理结构体结构体结构体结构体一种构造类型数据一种构造类型数据 结构体结构体由若干不同类型的数据项组成,由若干不同类型的数据项组成,构成结构体的各个数据项称为构成结构体的各个数据项称为结构体成员结构体成员。2023/2/223 struct struct 结结结结构体名构体名构体名构体名 数据数据数据数据类类类类型型型型1 1 成成成成员员员员名名名名1;1;数据数据数据数据类类类类型型型型2 2 成成成成员员员员名名名名2;2;数据数据数据数据类类类类型型型型n n 成成成成员员员员名名名名n;n;10.1 结构体结构体10.1.1 10.1.1 结构体与结构体类型的定义结构体与结构体类型的定义结构体与结构体类型的定义结构体与结构体类型的定义结构体类型定义的一般形式:结构体类型定义的一般形式:结构体类型定义的一般形式:结构体类型定义的一般形式:lstructstruct为关键字;为关键字;l结结构构体体名名是是用用户户定定义义的的类型标识类型标识。l 中中是是组组成成该该结结构构体体的的成成员员。成成员员的的数数据据类类型型可可以以是是C语语言言所所允允许的任何数据类型许的任何数据类型。2023/2/224例如图书类型的定义:例如图书类型的定义:例如图书类型的定义:例如图书类型的定义:struct bookcardstruct bookcard char num10;/*char num10;/*图书图书图书图书分类编号是字符数组类型分类编号是字符数组类型分类编号是字符数组类型分类编号是字符数组类型*/*/char name30;/*char name30;/*书名是字符数组类型书名是字符数组类型书名是字符数组类型书名是字符数组类型*/*/char author30;/*char author30;/*作者是字符数组类型作者是字符数组类型作者是字符数组类型作者是字符数组类型*/*/char publisher60;/*char publisher60;/*出版社是字符数组类型出版社是字符数组类型出版社是字符数组类型出版社是字符数组类型*/*/float price;/*float price;/*价格是单精度实型价格是单精度实型价格是单精度实型价格是单精度实型*/*/int n;/*int n;/*库存量是整型库存量是整型库存量是整型库存量是整型*/*/;例如学生类型的定义:例如学生类型的定义:struct student char num8;/*学号学号*/char name30;/*姓名姓名*/char sex;/*性别性别*/int age;/*年龄年龄*/char addr60;/*住址住址*/int score6;/*成绩成绩*/;10.1 结构体结构体10.1.1 10.1.1 结构体与结构体类型的定义结构体与结构体类型的定义结构体与结构体类型的定义结构体与结构体类型的定义2023/2/22510.1 结构体结构体10.1.2 10.1.2 结构体变量的定义与初始化结构体变量的定义与初始化结构体变量的定义与初始化结构体变量的定义与初始化1.1.结构体类型变量的定义结构体类型变量的定义结构体类型变量的定义结构体类型变量的定义 l l利用已利用已利用已利用已定义的结构体类型名定义变量定义的结构体类型名定义变量定义的结构体类型名定义变量定义的结构体类型名定义变量 struct struct 结构体名结构体名结构体名结构体名 变量名表;变量名表;变量名表;变量名表;例如:例如:例如:例如:struct bookcard struct bookcard book1100;book1100;struct student struct student s30,t1,t2;s30,t1,t2;按按照照结结构构体体类类型型的的组组成成,系系统统为为定定义义的的结结构构体体变变量量分分配配内内存存单单元元。结结构构体体变变量量的的各各个个成成员员在在内内存存中中占占用用连连续续存存储储区区域域,结结构构体体变变量量所所占占内内存存大大大大小小小小为为为为结构体中结构体中每个成员每个成员所占用内存的所占用内存的长度之和长度之和。struct studentstruct studentnumnum8 8个字节个字节个字节个字节namename3030个字节个字节个字节个字节sexsex1 1个字节个字节个字节个字节ageage2 2个字节个字节个字节个字节addraddr6060个字节个字节个字节个字节scorescore1212个字节个字节个字节个字节2023/2/22610.1 结构体结构体结构体类型与变量的说明结构体类型与变量的说明结构体类型与变量的说明结构体类型与变量的说明l l类型类型类型类型与与与与变量变量变量变量是不同的概念。是不同的概念。是不同的概念。是不同的概念。应先定义一个应先定义一个应先定义一个应先定义一个结构体类型结构体类型结构体类型结构体类型,而后再定义,而后再定义,而后再定义,而后再定义结构体变量结构体变量结构体变量结构体变量。系统对系统对系统对系统对类型类型类型类型不分配空间,仅对不分配空间,仅对不分配空间,仅对不分配空间,仅对变量变量变量变量分配空间。分配空间。分配空间。分配空间。只能对只能对只能对只能对变量变量变量变量赋值、存取或运算,而不能对一个赋值、存取或运算,而不能对一个赋值、存取或运算,而不能对一个赋值、存取或运算,而不能对一个类型类型类型类型赋值、存取或运算。赋值、存取或运算。赋值、存取或运算。赋值、存取或运算。l l成员成员成员成员也可以是也可以是也可以是也可以是结构变量结构变量结构变量结构变量。l l对结构中的对结构中的对结构中的对结构中的成员成员成员成员,可以单独使用,它的作用与,可以单独使用,它的作用与,可以单独使用,它的作用与,可以单独使用,它的作用与地位相当于地位相当于地位相当于地位相当于普通变量普通变量普通变量普通变量。l l成员名成员名成员名成员名可与程序中的变量名相同,也可与可与程序中的变量名相同,也可与可与程序中的变量名相同,也可与可与程序中的变量名相同,也可与不同不同不同不同结构体类型的成员名相同,结构体类型的成员名相同,结构体类型的成员名相同,结构体类型的成员名相同,二者代表不同的对二者代表不同的对二者代表不同的对二者代表不同的对象。象。象。象。numnum8 8个字节个字节个字节个字节namename3030个字节个字节个字节个字节sexsex1 1个字节个字节个字节个字节birthdaybirthdayyearyear2 2个字节个字节个字节个字节monthmonth 2 2个字节个字节个字节个字节dayday2 2个字节个字节个字节个字节addraddr6060个字节个字节个字节个字节scorescore1212个字节个字节个字节个字节 struct date int year,month,day;struct student char num8;char name30;char sex;struct datestruct date birthday;/*成员为结构体类型成员为结构体类型*/char addr60;int score6;2023/2/22710.1 结构体结构体10.1.2 10.1.2 结构体变量的定义与初始化结构体变量的定义与初始化结构体变量的定义与初始化结构体变量的定义与初始化1.1.结构体类型变量的定义结构体类型变量的定义结构体类型变量的定义结构体类型变量的定义 l l在定义结构体类型的同时定义变量在定义结构体类型的同时定义变量在定义结构体类型的同时定义变量在定义结构体类型的同时定义变量例如:例如:例如:例如:struct student struct student char num8,name20,sex;char num8,name20,sex;int age;int age;float score;float score;st30;st30;struct struct 结构体名结构体名结构体名结构体名 成员定义表;成员定义表;成员定义表;成员定义表;变量名表;变量名表;变量名表;变量名表;2023/2/22810.1 结构体结构体10.1.2 10.1.2 结构体变量的定义与初始化结构体变量的定义与初始化结构体变量的定义与初始化结构体变量的定义与初始化1.1.结构体类型变量的定义结构体类型变量的定义结构体类型变量的定义结构体类型变量的定义 l l直接定义结构体类型变量直接定义结构体类型变量直接定义结构体类型变量直接定义结构体类型变量 例如:例如:例如:例如:struct struct char num8,name20,sex;char num8,name20,sex;int age;int age;float score;float score;st30st30,a,b,c,a,b,c;struct struct 成员定义表;成员定义表;成员定义表;成员定义表;变量名表;变量名表;变量名表;变量名表;2023/2/22910.1 结构体结构体10.1.2 10.1.2 结构体变量的定义与初始化结构体变量的定义与初始化结构体变量的定义与初始化结构体变量的定义与初始化2.2.结构体变量的初始化结构体变量的初始化结构体变量的初始化结构体变量的初始化 【例例例例1010.1.1】结构体变量的初始化。结构体变量的初始化。结构体变量的初始化。结构体变量的初始化。struct date struct date int year,month,day;int year,month,day;struct student struct student char num8,name20,sex;char num8,name20,sex;struct date birthday;struct date birthday;float score;float score;a=9606011,Li ming,M,1977,12,9,83,a=9606011,Li ming,M,1977,12,9,83,b=9608025,Zhang liming,F,1978,5,10,87,c;b=9608025,Zhang liming,F,1978,5,10,87,c;如果初值个数少于结构体成员个数,如果初值个数少于结构体成员个数,则将无初值对应的成员赋以则将无初值对应的成员赋以0值。值。如果初值个数多于结构体成员个数,如果初值个数多于结构体成员个数,则编译出错。则编译出错。2023/2/221010.1 结构体结构体10.1.2 10.1.2 结构体变量的定义与初始化结构体变量的定义与初始化结构体变量的定义与初始化结构体变量的定义与初始化2.2.结构体变量的初始化结构体变量的初始化结构体变量的初始化结构体变量的初始化 【例【例【例【例10.210.2】结结结结构体数构体数构体数构体数组组组组的初始化。的初始化。的初始化。的初始化。struct s struct s char num8,name20,sex;char num8,name20,sex;float score;float score;stu3=9606011,Li ming,M,87.5,stu3=9606011,Li ming,M,87.5,9606012,Zhang jiangguo,M,79,9606012,Zhang jiangguo,M,79,9606013,Wang ping,F,90;9606013,Wang ping,F,90;元素的个数可以省略,根据赋初值时元素的个数可以省略,根据赋初值时结构体常量的个数确定数组元素的个数结构体常量的个数确定数组元素的个数 2023/2/221110.1 结构体结构体10.1.2 10.1.2 结构体变量的定义与初始化结构体变量的定义与初始化结构体变量的定义与初始化结构体变量的定义与初始化3.3.结构体变量的运算结构体变量的运算结构体变量的运算结构体变量的运算 l l用用用用sizeofsizeof运算符计算结构体变量所占内存空间运算符计算结构体变量所占内存空间运算符计算结构体变量所占内存空间运算符计算结构体变量所占内存空间 struct datestruct date intint year,month,day;year,month,day;struct studentstruct student charchar num8,name20,sex;num8,name20,sex;struct datestruct date birthday;birthday;floatfloat score;score;a a;sizeof(sizeof(a a)的结果为的结果为的结果为的结果为8+20+1+6+4=398+20+1+6+4=39 sizeof(sizeof(struct studentstruct student)的结果为的结果为的结果为的结果为3939 2023/2/221210.1 结构体结构体10.1.2 10.1.2 结构体变量的定义与初始化结构体变量的定义与初始化结构体变量的定义与初始化结构体变量的定义与初始化3.3.结构体变量的运算结构体变量的运算结构体变量的运算结构体变量的运算 l l同类型结构体变量之间的同类型结构体变量之间的同类型结构体变量之间的同类型结构体变量之间的赋值运算赋值运算赋值运算赋值运算结构体变量之间进行赋值时,系统将按成员一一对应赋值。结构体变量之间进行赋值时,系统将按成员一一对应赋值。结构体变量之间进行赋值时,系统将按成员一一对应赋值。结构体变量之间进行赋值时,系统将按成员一一对应赋值。struct datestruct date int year,month,day;int year,month,day;struct studentstruct student char num8,name20,sex;char num8,name20,sex;struct date birthday;struct date birthday;float score;float score;a=9606011,Li ming,M,1977,12,9,83,b,c;a=9606011,Li ming,M,1977,12,9,83,b,c;c c=a;a;2023/2/221310.1 结构体结构体10.1.2 10.1.2 结构体变量的定义与初始化结构体变量的定义与初始化结构体变量的定义与初始化结构体变量的定义与初始化3.3.结构体变量的运算结构体变量的运算结构体变量的运算结构体变量的运算 l l对结构体变量进行对结构体变量进行对结构体变量进行对结构体变量进行取址运算取址运算取址运算取址运算 struct datestruct date int year,month,day;int year,month,day;struct studentstruct student char num8,name20,sex;char num8,name20,sex;struct date birthday;struct date birthday;float score;float score;a;a;对对对对结结结结构构构构体体体体变变变变量量量量a a进进进进行行行行&a a 运运运运算算算算,可可可可以以以以得得得得到到到到a a a a的的的的首首首首地址,它是结构体类型指针。地址,它是结构体类型指针。地址,它是结构体类型指针。地址,它是结构体类型指针。2023/2/221410.1 结构体结构体10.1.2 10.1.2 结构体变量的定义与初始化结构体变量的定义与初始化结构体变量的定义与初始化结构体变量的定义与初始化4.4.结构体变量成员的引用结构体变量成员的引用结构体变量成员的引用结构体变量成员的引用 结构体变量成员引用的一般形式:结构体变量成员引用的一般形式:结构体变量成员引用的一般形式:结构体变量成员引用的一般形式:结构体变量名结构体变量名结构体变量名结构体变量名.成员名成员名成员名成员名 结结结结构构构构体体体体变变变变量量量量a a的的的的各各各各成成成成员员员员可可可可分分分分别别别别表表表表示示示示为为为为a a.numnum、a a.namename、a a.sexsex、a a.birthdaybirthday、a a.scorescore struct datestruct date int year,month,day;int year,month,day;struct student struct student char num8,name20,sex;char num8,name20,sex;struct date birthday;struct date birthday;float score;float score;a;a;“.”是分量是分量是分量是分量运算符,运算运算符,运算运算符,运算运算符,运算级别最高。级别最高。级别最高。级别最高。a.birthday.yeara.birthday.montha.birthday.day 结构体变量的各个成员可结构体变量的各个成员可结构体变量的各个成员可结构体变量的各个成员可进行何种运算,由该成员进行何种运算,由该成员进行何种运算,由该成员进行何种运算,由该成员的数据类型决定的数据类型决定的数据类型决定的数据类型决定 2023/2/221510.1 结构体结构体10.1.2 10.1.2 结构体变量的定义与初始化结构体变量的定义与初始化结构体变量的定义与初始化结构体变量的定义与初始化【例例例例1010.3.3】编写一个统计选票的程序。编写一个统计选票的程序。编写一个统计选票的程序。编写一个统计选票的程序。struct candidate struct candidate char name20;/*name char name20;/*name为候选人姓名为候选人姓名为候选人姓名为候选人姓名*/*/int count;/*countint count;/*count为候选人得票数为候选人得票数为候选人得票数为候选人得票数*/*/list list=invalid,0,Zhao,0,Qian,0,=invalid,0,Zhao,0,Qian,0,Sun,0,Li,0,Zhou,0;Sun,0,Li,0,Zhou,0;2023/2/221610.1 结构体结构体10.1.2 10.1.2 结构体变量的定义与初始化结构体变量的定义与初始化结构体变量的定义与初始化结构体变量的定义与初始化main()main()int i,n;int i,n;printf(Enter voten);printf(Enter voten);scanf(%d,&n);/*scanf(%d,&n);/*输入所投候选人编号,编号从输入所投候选人编号,编号从输入所投候选人编号,编号从输入所投候选人编号,编号从1 1 1 1开始开始开始开始*/*/while(n!=-1)/*while(n!=-1)/*当输入编号为当输入编号为当输入编号为当输入编号为-1-1-1-1时,表示投票结束时,表示投票结束时,表示投票结束时,表示投票结束*/*/if(n=1&n=1&n=5)listn.count+;/*listn.count+;/*有效票,则相应候选人计票成员加有效票,则相应候选人计票成员加有效票,则相应候选人计票成员加有效票,则相应候选人计票成员加1 1 1 1*/*/elseelse printf(invalidn);printf(invalidn);list0.count+;list0.count+;/*/*无效票无效票无效票无效票,list0list0的计票成员加的计票成员加的计票成员加的计票成员加1*/1*/scanf(%d,&n);/*scanf(%d,&n);/*输入所投候选人编号输入所投候选人编号输入所投候选人编号输入所投候选人编号*/*/for(i=1;i=5;i+)for(i=1;i-year pyear p-month pmonth p-dayday“-”是指向结构体成员是指向结构体成员运算符,优先级为一级运算符,优先级为一级 p=&d.year2023/2/221910.1 结构体结构体10.1.3 10.1.3 结构体的指针结构体的指针结构体的指针结构体的指针 【例【例【例【例1010.4.4】输入今天的日期,然后输出该日期。输入今天的日期,然后输出该日期。输入今天的日期,然后输出该日期。输入今天的日期,然后输出该日期。main()main()struct datestruct date /*/*/*/*在函数中定义结构体类型在函数中定义结构体类型在函数中定义结构体类型在函数中定义结构体类型*/*/*/*/int year,month,day;int year,month,day;today,today,*p=p=&today;today;/*/*/*/*定义结构体变量及其指针定义结构体变量及其指针定义结构体变量及其指针定义结构体变量及其指针*/*/*/*/printf(Enter today date(YYYY/MM/DD):);printf(Enter today date(YYYY/MM/DD):);scanf(%d/%d/%d,scanf(%d/%d/%d,&todaytoday.year,year,&todaytoday.month,month,&todaytoday.day);day);printf(Today:%d/%d/%dn,p printf(Today:%d/%d/%dn,p-year,pyear,p-month,month,p p-day);day);2023/2/222010.1 结构体结构体10.1.3 10.1.3 结构体的指针结构体的指针结构体的指针结构体的指针3.3.指向结构体数组的指针指向结构体数组的指针指向结构体数组的指针指向结构体数组的指针 【例【例【例【例1010.7.7】利用结构体指针输出一组化学利用结构体指针输出一组化学利用结构体指针输出一组化学利用结构体指针输出一组化学 元素名称及其原子量。元素名称及其原子量。元素名称及其原子量。元素名称及其原子量。struct list struct list int i;int i;char name4;char name4;float w;float w;tab4=1,H,1.008,2,He,4.0026,tab4=1,H,1.008,2,He,4.0026,3,Li,6.941,4,Be,9.01218;3,Li,6.941,4,Be,9.01218;tabtab数组数组数组数组1 1H Htab0tab01.0081.0082 2HeHetab1tab14.00264.00263 3LiLitab2tab26.9416.9414 4BeBetab3tab39.012189.012182023/2/222110.1 结构体结构体10.1.3 10.1.3 结构体的指针结构体的指针结构体的指针结构体的指针3.3.指向结构体数组的指针指向结构体数组的指针指向结构体数组的指针指向结构体数组的指针 main()main()struct list *p;struct list *p;printf(NotNametAtomic Weightn);printf(NotNametAtomic Weightn);for(p=tab;ptab+4;p+)for(p=tab;p-i,pi,p-name,pname,p-w);w);tabtab数组数组数组数组1 1H Htab0tab01.0081.0082 2HeHetab1tab14.00264.00263 3LiLitab2tab26.9416.9414 4BeBetab3tab39.012189.01218pppppNo Name Atomic WeightNo Name Atomic Weight1 H 1.0082 He 4.00263 Li 6.9414 Be 9.012182023/2/222210.1 结构体结构体10.1.3 10.1.3 结构体的指针结构体的指针结构体的指针结构体的指针【例例例例10.810.8】分析自增自减运算分析自增自减运算分析自增自减运算分析自增自减运算对对对对程序程序程序程序结结结结果的影响。果的影响。果的影响。果的影响。struct code struct code int i;int i;char c;char c;a=100,A,200,B,a=100,A,200,B,300,C,400,D;300,C,400,D;a a a a数组数组数组数组100100a0a0 AA200200a1a1 BB300300a2a2 CC400400a3a3 DD2023/2/222310.1 结构体结构体10.1.3 10.1.3 结构体的指针结构体的指针结构体的指针结构体的指针main()main()struct code*p=a;struct code*p=a;printf(%dt,+p-i);printf(%dt,+p-i);printf(%ct,(+p)-c);printf(%ct,(+p)-c);printf(%dt,(p+)-i);printf(%dt,(p+)-i);printf(%ct,+p-c);printf(%ct,+p-c);printf(%dt,p-i+);printf(%dt,p-i+);printf(%dn,p-i);printf(%dn,p-i);a a a a数组数组数组数组100100a0a0 AA200200a1a1 BB300300a2a2 CC400400a3a3 DDp101 DD301101B200D3003012023/2/222410.1 结构体结构体10.1.4 10.1.4 函数间结构体数据的传递函数间结构体数据的传递函数间结构体数据的传递函数间结构体数据的传递l l方法一:在函数之方法一:在函数之方法一:在函数之方法一:在函数之间间间间直接直接直接直接传递结传递结传递结传递结构体数据。构体数据。构体数据。构体数据。函函函函数数数数的的的的形形形形参参参参定定定定义义义义为为为为结结结结构构构构体体体体变变变变量量量量。函函函函数数数数调调调调用用用用时时时时,可可可可将将将将主主主主调调调调函函函函数数数数的的的的结结结结构构构构体体体体类类类类型型型型实实实实参参参参传传传传递递递递给给给给被被被被调调调调函函函函数数数数的的的的形参形参形参形参。如如如如果果果果将将将将函函函函数数数数定定定定义义义义为为为为结结结结构构构构体体体体类类类类型型型型函函函函数数数数,可可可可利利利利用用用用returnreturn语语语语句句句句将将将将一一一一个个个个结结结结构构构构体体体体数数数数据据据据结结结结果果果果返返返返回回回回到到到到主主主主调调调调函函函函数数数数中中中中。2023/2/222510.1 结构体结构体10.1.4 10.1.4 函数间结构体数据的传递函数间结构体数据的传递函数间结构体数据的传递函数间结构体数据的传递l l方法二:在函数之方法二:在函数之方法二:在函数之方法二:在函数之间传递结间传递结间传递结间传递结构体指构体指构体指构体指针针针针。形形形形参参参参定定定定义义义义为为为为指指指指向向向向结结结结构构构构体体体体类类类类型型型型的的的的指指指指针针针针变变变变量量量量,可可可可将将将将主主主主调调调调函函函函数数数数的的的的结结结结构构构构体体体体指指指指针针针针传传传传递递递递给给给给被被被被调调调调函函函函数数数数的的的的形形形形参参参参变变变变量量量量,通通通通过过过过指指指指针针针针形形形形参参参参的的的的指指指指向向向向域域域域的的的的扩扩扩扩展展展展,操操操操作作作作主主主主调调调调函函函函数中数中数中数中结结结结构体构体构体构体变变变变量及其成量及其成量及其成量及其成员员员员。如如如如果果果果将将将将函函函函数数数数定定定定义义义义为为为为结结结结构构构构体体体体指指指指针针针针型型型型函函函函数数数数,可可可可利利利利用用用用returnreturn语语语语句句句句将将将将被被被被调调调调函函函函数数数数中中中中结结结结构构构构体体体体变变变变量量量量的的的的指指指指针针针针返返返返回回回回给给给给主主主主调调调调函数的函数的函数的函数的结结结结构体指构体指构体指构体指针变针变针变针变量量量量。l l方法三:利用方法三:利用方法三:利用方法三:利用全局全局全局全局结结结结构体构体构体构体变变变变量量量量传递结传递结传递结传递结构体数据。构体数据。构体数据。构体数据。2023/2/222610.1 结构体结构体10.1.4 10.1.4 函数间结构体数据的传递函数间结构体数据的传递函数间结构体数据的传递函数间结构体数据的传递 【例例例例1010.9.9】编编编编制制制制一一一一个个个个复复复复数数数数乘乘乘乘法法法法函函函函数数数数,采采采采用用用用值值值值传传传传递递递递的的的的方方方方 法传送数据。法传送数据。法传送数据。法传送数据。struct complex /*struct complex /*定义存放复数的结构体类型定义存放复数的结构体类型定义存放复数的结构体类型定义存放复数的结构体类型*/*/float re;/*refloat re;/*re成员用于存放复数的实部成员用于存放复数的实部成员用于存放复数的实部成员用于存放复数的实部*/*/float im;/*imfloat im;/*im成员用于存放复数的虚部成员用于存放复数的虚部成员用于存放复数的虚部成员用于存放复数的虚部*/*/;2023/2/222710.1 结构体结构体10.1.4 10.1.4 函数间结构体数据的传递函数间结构体数据的传递函数间结构体数据的传递函数间结构体数据的传递struct complex multiplier(struct complex cx,struct complex multiplier(struct complex cx,struct complex cy)struct complex cy)struct complex cz;struct complex cz;cz.re=cx.re*cy.im;cz.re=cx.re*cy.im;cz.im=cx.re*cy.im+cx.im*cy.re;cz.im=cx.re*cy.im+cx.im*cy.re;return(cz);return(cz);2023/2/222810.1 结构体结构体10.1.4 10.1.4 函数间结构体数据的传递函数间结构体数据的传递函数间结构体数据的传递函数间结构体数据的传递main()main()struct complex x,y,z;struct complex x,y,z;x.re=3.2;x.re=3.2;x.im=1.5;x.im=1.5;y.re=2.7;y.re=2.7;y.im=4.6;y.im=4.6;z=multiplier(x,y);z=multiplier(x,y);printf(%f+%fin,z.re,z.im);/*printf(%f+%fin,z.re,z.im);/*以复数形式输出以复数形式输出以复数形式输出以复数形式输出*/*/2023/2/222910.1 结构体结构体10.1.4 10.1.4 函数间结构体数据的传递函数间结构体数据的传递函数间结构体数据的传递函数间结构体数据的传递【例【例【例【例10.1010.1010.1010.10】编制一个复数乘法函数,采用传递指针编制一个复数乘法函数,采用传递指针编制一个复数乘法函数,采用传递指针编制一个复数乘法函数,采用传递指针 的方法达到传送数据的目的。的方法达到传送数据的目的。的方法达到传送数据的目的。的方法达到传送数据的目的。struct complex float re,im;struct complex float re,im;void multiplier(struct complex*px,struct complex*py,void multiplier(struct complex*px,struct complex*py,struct complex*pzstruct complex*pz)pz-re=px-re*py-re-px-im*py-im;pz-re=px-re*py-re-px-im*py-im;pz-im=px-re*py-im+px-im*py-re;pz-im=px-re*py-im+px-im*py-re;main()main()struct complex x,y,z;struct complex x,y,z;x.re=3.2;x.re=3.2;x.im=1.5;x.im=1.5;y.re=2.7;y.re=2.7;y.im=4.6;y.im=4.6;multiplier(&x,&y,&z);multiplier(&x,&y,&z);printf(%f+%fi)*(%f+%fi)=%f+%fin,x.re,x.im,printf(%f+%fi)*(%f+%fi)=%f+%fin,x.re,x.im,y.re,y.im,z.re,z.im);y.re,y.im,z.re,z.im);2023/2/223010.1 结构体结构体10.1.4 10.1.4 函数间结构体数据的传递函数间结构体数据的传递函数间结构体数据的传递函数间结构体数据的传递【例【例【例【例10.1010.1010.1010.10】编制一个复数乘法函数,采用传递指针编制一个复数乘法函数,采用传递指针编制一个复数乘法函数,采用传递指针编制一个复数乘法函数,采用传递指针 的方法达到传送数据的目的。的方法达到传送数据的目的。的方法达到传送数据的目的。的方法达到传送数据的目的。struct complex float re,im;struct complex float re,im;struct complex*struct complex*multiplier(struct complex*px,struct complex*py)multiplier(struct complex*px,struct complex*py)struct complex struct complex z z;z.z.re=px-re*py-re-px-im*py-i

    注意事项

    本文(结构体共用体枚举型.ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开