版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 耿小慶耿小慶 8-1 8-1 結(jié)構(gòu)體結(jié)構(gòu)體 8-2 8-2 聯(lián)合體聯(lián)合體 8-3 8-3 枚舉枚舉 8-4 8-4 類型定義類型定義為什么要使用結(jié)構(gòu)體呢?為什么要使用結(jié)構(gòu)體呢?什么是結(jié)構(gòu)體?什么是結(jié)構(gòu)體?結(jié)構(gòu)體就是把一種對結(jié)構(gòu)體就是把一種對象的所有屬性封裝在象的所有屬性封裝在一起,形成一個統(tǒng)一一起,形成一個統(tǒng)一的整體。的整體。假設(shè)現(xiàn)在開發(fā)一個系統(tǒng),其中有學(xué)生、假設(shè)現(xiàn)在開發(fā)一個系統(tǒng),其中有學(xué)生、教師、教室等對象,而這些對象都具教師、教室等對象,而這些對象都具有編號、名稱等屬性,若不使用結(jié)構(gòu)有編號、名稱等屬性,若不使用結(jié)構(gòu)體,則必須使用體,則必須使用studentNum、teacherNum、c
2、lassroomNum、 studentName、teacherName、classroomName等等,哇,太麻煩等等,哇,太麻煩了!了!8-1 結(jié)構(gòu)體結(jié)構(gòu)體8.1.1 結(jié)構(gòu)(類型)的定義結(jié)構(gòu)(類型)的定義 結(jié)構(gòu)(類型)的定義是對結(jié)構(gòu)體的描述,結(jié)構(gòu)的定結(jié)構(gòu)(類型)的定義是對結(jié)構(gòu)體的描述,結(jié)構(gòu)的定義并不引起系統(tǒng)為該結(jié)構(gòu)分配內(nèi)存空間,只是制定義并不引起系統(tǒng)為該結(jié)構(gòu)分配內(nèi)存空間,只是制定了結(jié)構(gòu)使用的內(nèi)存模式。了結(jié)構(gòu)使用的內(nèi)存模式。 定義形式定義形式 struct struct 結(jié)構(gòu)類型名結(jié)構(gòu)類型名 數(shù)據(jù)類型數(shù)據(jù)類型 成員名成員名1;1; 數(shù)據(jù)類型數(shù)據(jù)類型 成員名成員名2;2; 數(shù)據(jù)類型數(shù)據(jù)類型 成
3、員名成員名n;n; ; ;struct student struct student int num; int num; char name10; char name10; int age; int age; float score; float score; char address30; char address30; ;8.1.2 結(jié)構(gòu)變量結(jié)構(gòu)變量 說明說明 存儲類型存儲類型 struct struct 結(jié)構(gòu)類型名結(jié)構(gòu)類型名 結(jié)構(gòu)變量名;結(jié)構(gòu)變量名;struct student struct student int num; int num; char name10; char name
4、10; int age; int age; float score; float score; char address30; char address30; ;struct student a;struct student a;struct struct studentstudent int num; int num; char name10; char name10; int age; int age; float score; float score; char address30; char address30; a;a;8.1.2 結(jié)構(gòu)變量結(jié)構(gòu)變量a anumnumnamenamea
5、geagescorescoreaddressaddress2字節(jié)字節(jié)10字節(jié)字節(jié)2字節(jié)字節(jié)4字節(jié)字節(jié)30字節(jié)字節(jié)48字節(jié)字節(jié)&a=&a.numn存儲:結(jié)構(gòu)變量說明時分配內(nèi)存;結(jié)構(gòu)變量按成員存儲:結(jié)構(gòu)變量說明時分配內(nèi)存;結(jié)構(gòu)變量按成員定義的順序存儲在連續(xù)的內(nèi)存單元中。定義的順序存儲在連續(xù)的內(nèi)存單元中。8.1.2 結(jié)構(gòu)變量結(jié)構(gòu)變量 成員的引用成員的引用 結(jié)構(gòu)變量名結(jié)構(gòu)變量名. .成員名成員名 初始化初始化 struct student a=1,”Mary”,20,90,” ”;struct student a=1,”Mary”,20,90,” ”; 輸入輸出輸入輸出 不允許直接輸入
6、輸出不允許直接輸入輸出 scanf(“%d%s%d%f%s”,&a.num,,&a.age,scanf(“%d%s%d%f%s”,&a.num,,&a.age, &a.score,a.address); &a.score,a.address); printf(“no:%d,name:%s,age:%d,score:%f,naddresprintf(“no:%d,name:%s,age:%d,score:%f,naddress:%s”,a.num,,a.age,a.score,a.address);s:%s”,a
7、.num,,a.age,a.score,a.address);8.1.2 結(jié)構(gòu)變量結(jié)構(gòu)變量 結(jié)構(gòu)的嵌套結(jié)構(gòu)的嵌套 結(jié)構(gòu)體可以嵌套,即成員可以是另一結(jié)構(gòu)的變量結(jié)構(gòu)體可以嵌套,即成員可以是另一結(jié)構(gòu)的變量 結(jié)構(gòu)體嵌套,只能對最低一級成員進行賦值、輸入結(jié)構(gòu)體嵌套,只能對最低一級成員進行賦值、輸入輸出等運算輸出等運算struct date struct date int year; int year; int month; int month; int day; int day; ;struct studentstruct student int num; int num; struct d
8、ate birthdate; struct date birthdate; . .;8.1.2 結(jié)構(gòu)變量結(jié)構(gòu)變量a a.a.birthdatebirthdate.year.yeara.a.birthdatebirthdate.month.montha.a.birthdatebirthdate.day.daya.scorea.scorea.addressa.address2字節(jié)字節(jié)10字節(jié)字節(jié)6字節(jié)字節(jié)4字節(jié)字節(jié)30字節(jié)字節(jié)52字節(jié)字節(jié)&a=&a.num8.1.2 結(jié)構(gòu)變量結(jié)構(gòu)變量 注意:注意: (1 1) 結(jié)構(gòu)結(jié)構(gòu) 類型與類型與結(jié)構(gòu)
9、結(jié)構(gòu)變量是不同的概念變量是不同的概念; (2 2)結(jié)構(gòu)體成員的使用與普通變量相同,可單獨使用)結(jié)構(gòu)體成員的使用與普通變量相同,可單獨使用; (3 3)成員名可以與程序變量名相同,但二者代表不同)成員名可以與程序變量名相同,但二者代表不同對象對象 int num; int num; struct student int num;.; struct student int num;.; (4 4)嵌套的數(shù)據(jù)成員,只有到最后一層才能進行各種)嵌套的數(shù)據(jù)成員,只有到最后一層才能進行各種操作操作8.1.3 結(jié)構(gòu)數(shù)組結(jié)構(gòu)數(shù)組 說明:說明: 存儲類型存儲類型 struct struct 結(jié)構(gòu)類型名結(jié)構(gòu)類型名
10、 結(jié)構(gòu)數(shù)組名結(jié)構(gòu)數(shù)組名 元素個數(shù)元素個數(shù) ; struct student class970540;struct student class970540; 初始化:初始化: struct student class970540=,struct student class970540=,; 輸入輸出:輸入輸出: for(i=0;i40;i+)for(i=0;i-成員名成員名 pstu-numpstu-num . - . -同屬第一優(yōu)先級同屬第一優(yōu)先級 * *屬第二優(yōu)先級屬第二優(yōu)先級 初始化初始化 struct student struct student * *pstu=class9705;ps
11、tu=class9705; pstu+; pstu+; 相當于加一個結(jié)構(gòu)類型的長度相當于加一個結(jié)構(gòu)類型的長度8.1.5 結(jié)構(gòu)體與函數(shù)結(jié)構(gòu)體與函數(shù) 利用參數(shù)傳遞結(jié)構(gòu)體利用參數(shù)傳遞結(jié)構(gòu)體 結(jié)構(gòu)變量在函數(shù)間的傳遞結(jié)構(gòu)變量在函數(shù)間的傳遞n數(shù)據(jù)復(fù)制數(shù)據(jù)復(fù)制 單向傳遞,調(diào)用函數(shù)單向傳遞,調(diào)用函數(shù)-被調(diào)用函數(shù)被調(diào)用函數(shù) 形參為結(jié)構(gòu)體變量,實參為結(jié)構(gòu)體變量形參為結(jié)構(gòu)體變量,實參為結(jié)構(gòu)體變量n地址傳遞地址傳遞 雙向傳遞雙向傳遞n 形參為結(jié)構(gòu)體指針,實參為地址形參為結(jié)構(gòu)體指針,實參為地址n 表面上為數(shù)據(jù)復(fù)制,即形參和實參均為結(jié)構(gòu)體變量,表面上為數(shù)據(jù)復(fù)制,即形參和實參均為結(jié)構(gòu)體變量,但
12、結(jié)構(gòu)體的成員為指針,則實際完成的地址傳遞但結(jié)構(gòu)體的成員為指針,則實際完成的地址傳遞struct dataint a;int b;int c;struct dataint a;int b;int c;main()main() struct data arg; void func(struct data); struct data arg; void func(struct data); arg.a=27; arg.b=3; arg.c=arg.a+arg.b; arg.a=27; arg.b=3; arg.c=arg.a+arg.b; printf(“arg.a=%d, arg.b=%d,arg
13、.c=%dn”, arg.a, arg.b,arg.c); printf(“arg.a=%d, arg.b=%d,arg.c=%dn”, arg.a, arg.b,arg.c); printf(“CALL FUNC()n”); printf(“CALL FUNC()n”); func(arg); func(arg); printf(“arg.a=%d, arg.b=%d,arg.c=%dn”, arg.a, arg.b,arg.c); printf(“arg.a=%d, arg.b=%d,arg.c=%dn”, arg.a, arg.b,arg.c); void func(struct dat
14、a parm)void func(struct data parm) printf(“parm.a=%d,parm.b=%d,parm.c=%dn”,parm.a,parg.b,parm.c); printf(“parm.a=%d,parm.b=%d,parm.c=%dn”,parm.a,parg.b,parm.c); printf(“PROCESSn”); printf(“PROCESSn”); parm.a=18, parm.b=5,parm.c=parm.a parm.a=18, parm.b=5,parm.c=parm.a* *parm.b;parm.b; printf(“parm.a
15、=%d,parm.b=%d,parm.c=%dn”,parm.a, arg.b,parm.c); printf(“parm.a=%d,parm.b=%d,parm.c=%dn”,parm.a, arg.b,parm.c); printf(“RETURNn”); printf(“RETURNn”); a: 27b: 3c: 30 argparma: 27b: 3c: 30arg.a=27,arg.b=3,arg.c=30arg.a=27,arg.b=3,arg.c=30CALL FUNC()CALL FUNC()parm.a=27,parm.b=3,parm.c=30parm.a=27,parm
16、.b=3,parm.c=30PROCESSPROCESSparm.a=18,parm.b=5,parm.c=90parm.a=18,parm.b=5,parm.c=90RETURN RETURN arg.a=27,arg.b=3,arg.c=30arg.a=27,arg.b=3,arg.c=30a: 18b: 5c: 90數(shù)據(jù)復(fù)制數(shù)據(jù)復(fù)制struct dataint a;int b;int c;struct dataint a;int b;int c;main()main() struct data arg; void func(struct data struct data arg; voi
17、d func(struct data * *);); arg.a=27; arg.b=3;arg.c=arg.a+arg.b; arg.a=27; arg.b=3;arg.c=arg.a+arg.b; printf(“arg.a=%d, arg.b=%d,arg.c=%dn”, arg.a, arg.b,arg.c); printf(“arg.a=%d, arg.b=%d,arg.c=%dn”, arg.a, arg.b,arg.c); printf(“CALL FUNC()n”); printf(“CALL FUNC()n”); func( func(& &arg);arg)
18、; printf(“arg.a=%d, arg.b=%d,arg.c=%dn”, arg.a, arg.b,arg.c); printf(“arg.a=%d, arg.b=%d,arg.c=%dn”, arg.a, arg.b,arg.c); void func(struct data void func(struct data * *parm)parm) printf(“parm-a=%d,parm-b=%d,parm-c=%dn”,parm-a,parg-b,parm- printf(“parm-a=%d,parm-b=%d,parm-c=%dn”,parm-a,parg-b,parm-c
19、);c); printf(“PROCESSn”); printf(“PROCESSn”); parm-a=18, parm-b=5, parm-c=parm-a parm-a=18, parm-b=5, parm-c=parm-a* *parm-b;parm-b; printf(“parm-a=%d,parm-b=%d,parm-c=%dn”,parm-a,parg-b,parm- printf(“parm-a=%d,parm-b=%d,parm-c=%dn”,parm-a,parg-b,parm-c);c); printf(“RETURNn”); printf(“RETURNn”); a:
20、27b: 3c: 30 argparm2000a: 18b: 5c: 90地址傳遞(地址傳遞(1)arg.a=27,arg.b=3,arg.c=30arg.a=27,arg.b=3,arg.c=30CALL FUNC()CALL FUNC()parm-a=27,parm.b-3,parm-c=30parm-a=27,parm.b-3,parm-c=30PROCESSPROCESSparm-a=18,parm-b=5,parm-c=90parm-a=18,parm-b=5,parm-c=90RETURN RETURN arg.a=18,arg.b=5,arg.c=90arg.a=18,arg.b
21、=5,arg.c=90struct data int struct data int * *a;int a;int * *b;int b;int * *c;c;main()main() struct data arg; void func(struct data); int x,y,z; struct data arg; void func(struct data); int x,y,z; arg.a=&x, arg.a=&x,* *arg.a=27;arg.b=&y,arg.a=27;arg.b=&y,* *arg.b=3;arg.c=&z; arg.
22、b=3;arg.c=&z; * *arg.c=arg.c=* *arg.a+arg.a+* *arg.b;arg.b; printf(“ printf(“* *arg.a=%d,arg.a=%d,* *arg.b=%d,arg.b=%d,* *arg.c=%dn”, arg.c=%dn”, * *arg.a, arg.a, * *arg.b,arg.b,* *arg.c);arg.c); printf(“CALL FUNC()n”); printf(“CALL FUNC()n”); func(arg); func(arg); printf(“ printf(“* *arg.a=%d,a
23、rg.a=%d,* *arg.b=%d,arg.b=%d,* *arg.c=%dn”, arg.c=%dn”, * *arg.a, arg.a, * *arg.b,arg.b,* *arg.c);arg.c); void func(struct data parm)void func(struct data parm) printf(“printf(“* *parm.a=%d,parm.a=%d,* *parm.b=%d,parm.b=%d,* *parm.c=%dn”,parm.c=%dn”,* *parm.a,parm.a,* *parg.b,parg.b,* *parm.parm.c);
24、c); printf(“PROCESSn”); printf(“PROCESSn”); * *parm.a=18, parm.a=18, * *parm.b=5, parm.b=5, * *parm.c=parm.c=* *parm.aparm.a* * *parm.b;parm.b; printf(“printf(“* *parm.a=%d,parm.a=%d,* *parm.b=%d,parm.b=%d,* *parm.c=%dn”,parm.c=%dn”,* *parm.a,parm.a,* *parg.b,parg.b,* *parm.parm.c);c); printf(“RETUR
25、Nn”); printf(“RETURNn”); x: 27y: 3z: 30 argparma:2000b:2002c:2004* *arg.a=27,arg.a=27,* *arg.b=3,arg.b=3,* *arg.c=30arg.c=30CALL FUNC()CALL FUNC()* *parm.a=27,parm.a=27,* *parm.b=3,parm.b=3,* *parm.c=30parm.c=30PROCESSPROCESS* *parm.a=18,parm.a=18,* *parm.b=5,parm.b=5,* *parm.c=90parm.c=90RETURN RET
26、URN * *arg.a=18,arg.a=18,* *arg.b=5,arg.b=5,* *arg.c=90arg.c=90 x: 18y: 5z: 90地址傳遞(地址傳遞(2)a:2000b:2002c:20048.1.5 結(jié)構(gòu)體與函數(shù)結(jié)構(gòu)體與函數(shù) 2 2、 結(jié)構(gòu)數(shù)組在函數(shù)間的傳遞結(jié)構(gòu)數(shù)組在函數(shù)間的傳遞數(shù)據(jù)復(fù)制數(shù)據(jù)復(fù)制雙向傳遞雙向傳遞形參為結(jié)構(gòu)指針或結(jié)構(gòu)數(shù)組,實參為地址形參為結(jié)構(gòu)指針或結(jié)構(gòu)數(shù)組,實參為地址stuq2000stu0stu1stu398.1.5 結(jié)構(gòu)體與函數(shù)結(jié)構(gòu)體與函數(shù)四四十十個學(xué)生,要求找出成績最高者的姓名和成績個學(xué)生,要求找出成績最高者的姓名和成績struct studen
27、t int num; char name12; float score; struct student int num; char name12; float score; ;main()main() struct student stu40, struct student stu40,* *p; int i, max(struct student p; int i, max(struct student * *,int);,int); for(i=0;i40;i+) for(i=0;iscore; int i,m=0; float s=q-score; int i,m=0; for(q+,i
28、=1;in;i+,q+) for(q+,i=1;iscores) s=q-score; m=i; if(q-scores) s=q-score; m=i; return(m); return(m); 結(jié)構(gòu)數(shù)組的傳遞結(jié)構(gòu)數(shù)組的傳遞求某班學(xué)生的平均成績求某班學(xué)生的平均成績struct student int num; char name20; float score; ;struct student int num; char name20; float score; ;main()main() struct student class40; struct student class40; int
29、 i; int i; float avg,average(struct student float avg,average(struct student * *, int);, int); for(i=0;i40;i+) for(i=0;i40;i+) scanf(“%d%s%f”,&classi.num, ,&classi.score); scanf(“%d%s%f”,&classi.num, ,&classi.score); avg=average(class,40); avg=average(class,40);
30、 printf(“average score is: %fn”, avg); printf(“average score is: %fn”, avg); float average(struct student float average(struct student * *p,int n)p,int n) int i; float a=0; int i; float a=0; for(i=0;iscore; for(i=0;iscore; a/=n; a/=n; return(a); return(a); 8.1.5 結(jié)構(gòu)體與函數(shù)結(jié)構(gòu)體與函數(shù)結(jié)構(gòu)數(shù)組的傳遞結(jié)構(gòu)數(shù)組的傳遞for(i=0;in;
31、i+) a+=(for(i=0;iscore; a+=(p+i)-score; * */ /8.1.5 結(jié)構(gòu)體與函數(shù)結(jié)構(gòu)體與函數(shù) 結(jié)構(gòu)型函數(shù)與結(jié)構(gòu)指針型函數(shù)結(jié)構(gòu)型函數(shù)與結(jié)構(gòu)指針型函數(shù) 返回值為結(jié)構(gòu)類型(結(jié)構(gòu)變量或結(jié)構(gòu)指針)返回值為結(jié)構(gòu)類型(結(jié)構(gòu)變量或結(jié)構(gòu)指針) 說明:說明: struct struct 結(jié)構(gòu)體名結(jié)構(gòu)體名 函數(shù)名(形式參數(shù))函數(shù)名(形式參數(shù)) struct struct 結(jié)構(gòu)體名結(jié)構(gòu)體名 * *函數(shù)名(形式參數(shù))函數(shù)名(形式參數(shù)) 注意:注意:四個學(xué)生,要求找出成績最高者的姓名和成績四個學(xué)生,要求找出成績最高者的姓名和成績#include #inc
32、lude struct student int num; char name12; float score; struct student int num; char name12; float score; ;main()main() struct student stu40, max(struct student struct student stu40, max(struct student * *,int),p; int i; ,int),p; int i; for(i=0;i40;i+) for(i=0;inum; strcpy(,q-name); m.score=q-s
33、core; m.num=q-num; strcpy(,q-name); m.score=q-score; for(q+,i=1;in;i+,q+) for(q+,i=1;iscorem.score) if(q-scorem.score) m.num=q-num; strcpy(,q-name); m.score=q-score; m.num=q-num; strcpy(,q-name); m.score=q-score; return(m); return(m); 8.1.5 結(jié)構(gòu)體與函數(shù)結(jié)構(gòu)體與函數(shù)結(jié)構(gòu)型函數(shù)結(jié)構(gòu)型函數(shù)8.1.5 結(jié)構(gòu)體與函數(shù)結(jié)構(gòu)體與函數(shù)四
34、個學(xué)生,要求找出成績最高者的姓名和成績四個學(xué)生,要求找出成績最高者的姓名和成績struct student int num; char name12; float score; struct student int num; char name12; float score; ;main()main() struct student stu40, struct student stu40, * * max(struct student max(struct student * *,int),int),* *p; int i; p; int i; for(i=0;i40;i+) for(i=0;
35、inum,p-name,p-score); printf(No:%dnname:%snscore:%fn,p-num,p-name,p-score); struct student struct student * *max(struct student max(struct student * *q,int n)q,int n) struct student struct student * *m=q; int i;m=q; int i; for(q+,i=1;in;i+,q+) for(q+,i=1;iscorem-score) m=q; if(q-scorem-score) m=q; r
36、eturn(m); return(m); 結(jié)構(gòu)指針型函數(shù)結(jié)構(gòu)指針型函數(shù)8-2 聯(lián)合體聯(lián)合體 格式:格式:union union 聯(lián)合類型名聯(lián)合類型名 成員列表;成員列表; 聯(lián)合變量名聯(lián)合變量名 ; union union 聯(lián)合類型名聯(lián)合類型名 聯(lián)合變量名;聯(lián)合變量名;同結(jié)構(gòu)體一樣,聯(lián)合體也是由不同數(shù)據(jù)類型的數(shù)據(jù)元素同結(jié)構(gòu)體一樣,聯(lián)合體也是由不同數(shù)據(jù)類型的數(shù)據(jù)元素(成員)組成,但其占有內(nèi)存的方式不同。(成員)組成,但其占有內(nèi)存的方式不同。結(jié)構(gòu)體變量所占內(nèi)存長度是各成員所占的長度之結(jié)構(gòu)體變量所占內(nèi)存長度是各成員所占的長度之和和,各成,各成員分別占有自己的內(nèi)存單元。員分別占有自己的內(nèi)存單元。聯(lián)合體變
37、量所占內(nèi)存長度等于聯(lián)合體變量所占內(nèi)存長度等于最長最長的成員長度。聯(lián)合使用的成員長度。聯(lián)合使用覆蓋技術(shù),使不同成員占用同一段存儲區(qū)域。覆蓋技術(shù),使不同成員占用同一段存儲區(qū)域。&a=&a.c15字節(jié)字節(jié)結(jié)構(gòu)與聯(lián)合存儲模式的差異結(jié)構(gòu)與聯(lián)合存儲模式的差異struct struct char c; char c; int i; int i; float f; float f; double d; double d; a; a;union union char c; char c; int i; int i; float f; float f; double d; double d; b;
38、 b;a a c ci if fd d1248b b c ci if fd d12848字節(jié)字節(jié)&b=&b.c=&b.i=&b.f= &b.d8-2 聯(lián)合體聯(lián)合體 特點:特點:(1 1)每一時刻,只有一個成員起作用,只能保持某)每一時刻,只有一個成員起作用,只能保持某個成員項的數(shù)據(jù)個成員項的數(shù)據(jù)(2 2)聯(lián)合變量起作用的成員是最后一次存放的成員)聯(lián)合變量起作用的成員是最后一次存放的成員(3 3)聯(lián)合變量的地址和其各成員地址是同一地址)聯(lián)合變量的地址和其各成員地址是同一地址(4 4)不能在定義聯(lián)合變量時初始化)不能在定義聯(lián)合變量時初始化(5 5)不能把聯(lián)合
39、變量作為函數(shù)參數(shù)和返回值,但可)不能把聯(lián)合變量作為函數(shù)參數(shù)和返回值,但可以使用聯(lián)合指針以使用聯(lián)合指針(6 6)聯(lián)合可以嵌套,其成員亦可以是結(jié)構(gòu)或數(shù)組)聯(lián)合可以嵌套,其成員亦可以是結(jié)構(gòu)或數(shù)組8-2 聯(lián)合體聯(lián)合體structstruct int num; int num; char name12; char name12; char sex; char sex; union int class; union int class; char position10; char position10; category; category;person;person;sizeof(person)=25s
40、izeof(person)=258-3 枚舉枚舉 功能:枚舉功能:枚舉-將變量的值一一列舉出來將變量的值一一列舉出來如果一個變量只有幾種可能的值,可以定義為枚舉如果一個變量只有幾種可能的值,可以定義為枚舉類型。類型。 格式:格式:enumenum 枚舉類型名枚舉類型名 枚舉元素列表枚舉元素列表 ; 定義定義enumenum 枚舉類型名枚舉類型名 枚舉變量;枚舉變量; 說明說明 例子:例子:enum weekday sun,mon,tue,wed,thu,fri,sat;enum weekday sun,mon,tue,wed,thu,fri,sat;enum weekday workdayen
41、um weekday workday,weekend;weekend;8-3 枚舉枚舉n說明:說明:(1 1)枚舉元素不是變量,不能賦值,按常量處理)枚舉元素不是變量,不能賦值,按常量處理(2 2)枚舉元素是有值的,按定義時順序值為)枚舉元素是有值的,按定義時順序值為0 0,1 1,22 可指定枚舉元素的值,其后為前值增可指定枚舉元素的值,其后為前值增1 1 若若enum weekday sun,mon,tue,wed,thu,fri,sat;enum weekday sun,mon,tue,wed,thu,fri,sat; 則則sun=0sun=0,mon=1,tue=2mon=1,tue=
42、2 若若enum weekday sun=7,mon,tue,wed,thu,fri,sat;enum weekday sun=7,mon,tue,wed,thu,fri,sat; 則則sun=7sun=7,mon=8,tue=9mon=8,tue=9 所以所以enum weekday sun=7,mon=1,tue,wed,thu,fri,sat;enum weekday sun=7,mon=1,tue,wed,thu,fri,sat;(3 3)枚舉值可用來判斷)枚舉值可用來判斷 if(workdaysun) if(workdaysun) 順序號順序號(4 4)一個整數(shù)不能直接賦值給枚舉變量
43、)一個整數(shù)不能直接賦值給枚舉變量 workday=2;workday=2; - workday=(enum weekday)2; - workday=(enum weekday)2;main()main() enum color red,white,blue,green,black; enum color red,white,blue,green,black; enum color i,j,present; enum color i,j,present; for(i=red;i=black;i+) for(i=red;i=black;i+) for(j=red;j=black;j+) for(j=red;j=black
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 大米專用冰箱產(chǎn)品供應(yīng)鏈分析
- 帶有時鐘的收音機產(chǎn)業(yè)鏈招商引資的調(diào)研報告
- 醫(yī)療影像技術(shù)行業(yè)相關(guān)項目經(jīng)營管理報告
- 樂器修理或維護行業(yè)營銷策略方案
- 美容霜項目營銷計劃書
- 幼兒園行業(yè)經(jīng)營分析報告
- 不動產(chǎn)出租服務(wù)行業(yè)營銷策略方案
- 含藥物的護膚液產(chǎn)品供應(yīng)鏈分析
- 礦物絕緣電纜產(chǎn)品供應(yīng)鏈分析
- 云計算法務(wù)服務(wù)行業(yè)營銷策略方案
- 國家高新技術(shù)企業(yè)評定打分表
- 成語故事鉆木取火
- MOOC 自然地理學(xué)-西北大學(xué) 中國大學(xué)慕課答案
- 計算機組成原理與匯編語言課后習(xí)題及作業(yè)答案
- 中華民族共同體
- 2024年社區(qū)工作者考試必考1000題及參考答案(模擬題)
- 跨平臺移動應(yīng)用開發(fā)技術(shù)
- 十二指腸潰瘍伴穿孔的護理查房
- 2023-2024學(xué)年北京市房山區(qū)九年級上學(xué)期期中考試數(shù)學(xué)試卷含詳解
- 市場營銷策劃(本)-形考任務(wù)三(第八~十章)-國開(CQ)-參考資料
- 公司留學(xué)展推廣方案
評論
0/150
提交評論