版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第八用户自定义数据译预1结构类型及其变量的如果需要把一个学生的学号、、、23结构类型的例例struct{intnumber;charname[9];intage;charstruct结构类型类型成员1;类型成员类型成员例struct{intnumber;charname[9];structBirthday{intyear;intmonth;intday;
sizeof(struct的值是charsex;
三种方
结构变量的(1)先定struct{intnumber;charname[9];intage;char
structStudent应应区分结构类型名与结6结构变量的struct{intnumber;charname[9];intage;char}(3同时{intnumber;charname[9];intage;char}无结体7结构变量的初如:struct{intnumber;charname[9];{intyear;intmonth;intday;}birthday;charsex;}student1={1101,"lilin",1985,8,1,'M‘8结构成员结构成员成员成员struct{intnumber;charname[9];intage;char}各成员
功能: 结构体变量Student.number9结构变 注意事如student2=student1;student1、student2student2={1101,"lilin1985,8,1M'};如:printfstudent1);错误结构变 注意事 如: age举例 结构类型及变量定义、成例8.4职工数据包括职工编号、、工资、地址、,定义职工类型并用它来职工变量,然后其各个成员。结构类型定struct longcode;charname[20];floatsalary;charaddress[50];charphone[11];用2个结构变量存放2个职工#include<stdio.h>voidmain(){structEmployee "},/*以下给结构变量ps2各成员输入值或赋值printf("code:scanfprintf("name:scanf("%s",printf("phone:scanf("%s",ps2.phone);strcpy(ps2.address,ps1.address);
getchar()用来 gets函数可含空格 。printf("\ncode:%ld\n",ps1.code);printf("name:%s=n",);printf("salary:%6.2f\n",ps1.salary);printf("address:%s\n",ps1.address);printf("phone:%s\n",ps1.phone);printf("\ncode:%ld\n",ps2.code);printf("name:%s\n",);printf("salary:%6.2f\n",ps2.salary);printf("phone:%s\n",ps2.phone);}#includevoid#includevoid{struct{intnumber;charname[9];structBirthday{intyear;intmonth;intday;charsex;scanf("%s",scanf("printf("%d,%s,%d-%d-%d,%c\n",s.number,,s.birthday.day,s.sex);} s结构结构数组的定义
如:方式struct{int
charstruct{intyear;intmonth;intday;}char
结构数组初始}student[2]={{1101,"lilin",1985,8,1,{1102,"wangjing",1985,7,1,'F'}结构数组应用例8.5计算学生的平#includestruct
定义结构{intnumber;charname[20];intage;}stu[4];voidmain(){inti;floatave,s=0;for(i=0;i<4;i++)for(i=0;i<4;printf("average 结构和指一、结构指针变量的structStudent{intnumber;charname[20];intstructStudent表示p1、p2均是指向结构变量的指针变量,可向任何structStudent类型的结构变量。structStudentp1=&b;p2=stu;二、通过指 结构变量成用指 结构成员的方式(*结构指针名).成员或成员名指向++pman->name等同++(pman 等同*(pman举例用结构指针间 结构变量成#include<stdio.h>#include<string.h>structStudent{longnum;charname[20];intage;};voidmain(){structStudentstudent,*p=&student;strcpy(p->name,"WangLi");
类例printf("name:(*p).name,(*p).num,(*p).age 举例结构指针间接结构数组元素的成员类例8.9学生类型结构数组中存放若干学生的数#include<stdio.h>structStudent{intnumber;charname[20];intage;};voidmain(){structStudentstu[2]={{10101,"li{10102,"zhangstructStudent for(p=stu;p<stu+2;p++)
p->number,p->name,p->age);了三、指针变量作为结构了例#include<stdio.h>structStudent{intnumber;char*name;void
structStudentstu={1101,"lili"};puts(); 四、结构指针作为函数最好的办法是使用结构指针变量作函数参例:给出年月日计算它是该年的第几天。structDate{intyear;intmonth;intday;#include#includevoid{intdays(structDate*);/*函数原 structDateprintf("Enterprintf("是第%d天",days(&d1)); }结构指针作函数参数intdays(structDate{intinti,day_sum=day_sum+=monthtable[i];
月份大于2判断是否为闰if(i>2&&day_sum+=1;day_sum+=sp->day;returnday_sum;}联合类度的数据共享同一块空间。也称为“共用体”一、联合类型的联合类型的定义union{charch;inti;floatunion{charch;inti;floatf;…员名i fi联合类型的struct{charstruct{charunionuniontypeunion{int i; union{union{intstructstructtype{shorts; 二、联合变量的union{int unionuniontypeunion{inta;longd;
{inta;longd;
联合类型和联合变量的定义状{charname[20];charsex;intage;{intsingle;
性 别
未婚已 离状配 标偶女年月名数{charspouseName[20];intstructDate{intyear;intmonth;intint 三、联合变量成员 union inti;charc;}unionuniontype*p;p=&my_data;下 都是合法的my_data.i,my_data.c,p->i,p-四、使用联合变量应注意的联合变量{inti;charch;floatb;} 不对枚举枚举的概枚举类型也是一种数据类型。对那些只可星期一、星期二、……星期日又如 的取值,月份的取一、枚举类型的枚举类型定义的常量例如enum/*该枚举类型只准许取7种值enummonth{Jan,Feb,Mar,Apr,May,Jun,/*该枚举类型只准许取12种值请注列在枚举类型定中的是枚举常量名,例如enumweekday{Sun,Mon,Tue,Wed,Fri,Sat}例如:enumweekday{Sun=7,Mon=1Thu,Fri,Sat}枚常值7123456又如:enumweekday{Sun=7,Mon,Tue=5Wed,Thu=6,Fri,Sat};枚常值7856678二、枚举型变量的枚举型变量的定义也有三种方enumweekday{Sun,Mon,Tueenumweekdayenumweekday{Sun,Mon,Tue}enum{Sun,Mon,Tue}三、枚举型变量的如enumweekday{Sun,Mon,Tue,Wed,Thu,Fri,Sat}workday;
正确语法上错workday=(enumweekday)6;正确枚举型变量的enumflag{true,false}…if(my_flag==枚枚举常量利用4)、5),可用枚举变量控制for循环类习题8.2:三种颜色取两色,输出各种组合情#includevoid{enumcolor{red,yellow,blue}i,结果结果 23456for{for(j=red;j<=blue;j++){n=n+1;printf("%-4d",n);{casered: caseyellow:printf("%-10s","yellow");break;caseblue: {casered: caseyellow:printf("%-10s","yellow");break;caseblue: 用typedef定义类型的用typedef给已存在的数据类一般形式typedef名例如typedefintINTEGER;于是,inta,b;INTEGERa,b;注:用typedef定义的类型名习惯用大写字母表 2)定义STU代表结构类型structStudent:typedefstructStudent{intchar}STU /*定义stu1为结构体变量定义COUNT代表有10typedefintCOUNT /*定义n为整型数组变量定义STRINGtypedefchar
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中等教育特色学校发展与示范建设考核试卷
- 施工现场安全教育机械安全篇考核试卷
- 环保的意义理论与实践考核试卷
- 炼铁生产中的作业安全操作规程考核试卷
- 危险品仓储应急救援演练考核试卷
- 拆船业在全球产业链中的位置考核试卷
- 可穿戴设备在健康管理中的实际效果考核试卷
- 信息系统的组织与企业管理考核试卷
- 低温仓储人员安全行为培训考核试卷
- DB11T 494.12-2013 人力资源服务规范 第12部分:劳务派遣
- 251直线与圆的位置关系(第1课时)(导学案)(原卷版)
- 2024浙江绍兴市人才发展集团第1批招聘4人(第1号)高频难、易错点500题模拟试题附带答案详解
- 幼儿园说课概述-课件
- 冠状动脉介入风险预测评分的临床应用
- 35导数在经济中的应用
- 苏科版(2024新版)七年级上册数学期中学情评估测试卷(含答案)
- 部编版《道德与法治》三年级上册第10课《父母多爱我》教学课件
- 北师大版八年级数学上册 数学上学期作业设计勾股定理 实数 含学生版作业及答案
- 期中模拟检测(1-3单元)2024-2025学年度第一学期西师大版二年级数学
- 气管插管操作规范(完整版)
- 2024-2025学年外研版英语八年级上册期末作文范文
评论
0/150
提交评论