




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第八用戶自定義數據譯預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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 代理商產品銷售合同
- 婚慶服務承攬合同
- 房地產自由經紀人分銷合同
- 外匯擔保合同合同協議
- 建筑施工合同與施工總承包合同
- Java程序設計基礎 課件 第12章 JavaFX圖形用戶界面程序設計
- 購房合同范本備案章子
- 鋼板租賃合同范本wps
- 掛扣協議合同范本
- 外墻工程供貨合同范本
- 南京市旭東中學2023-2024學年中考語文全真模擬試卷含解析
- 廠內檢驗員基礎知識培訓
- 馬工程《思想政治教育學原理 第二版》課后習題詳解
- 部編版語文三年級下冊第八單元 有趣的故事 大單元整體作業設計
- 員工雇主責任險操作管理規定
- 工業機器人基礎及應用高職全套教學課件
- 鄉村醫生藥品培訓課件
- 鹽漬天然腸衣
- 群眾文化活動服務投標方案(技術標)
- 兒科難治性癲癇一病一品優質護理匯報課件
- 科技有限公司員工手冊
評論
0/150
提交評論