专升本-c语言-新8结构枚举等_第1页
专升本-c语言-新8结构枚举等_第2页
专升本-c语言-新8结构枚举等_第3页
专升本-c语言-新8结构枚举等_第4页
专升本-c语言-新8结构枚举等_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第八用户自定义数据译预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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论