版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
會(huì)計(jì)學(xué)1C語(yǔ)言程序設(shè)計(jì)Ch結(jié)構(gòu)體共用體和枚舉2
結(jié)構(gòu)體類型
數(shù)組中的各元素是屬于同一類型的,但有時(shí)需要將不同類型的數(shù)據(jù)組合成一個(gè)有機(jī)的整體,并且這些數(shù)據(jù)是相互聯(lián)系的,這就引出了結(jié)構(gòu)體。
結(jié)構(gòu)體是由多種類型的數(shù)據(jù)組成的整體。組成結(jié)構(gòu)體的各個(gè)分量稱為結(jié)構(gòu)體的數(shù)據(jù)成員(簡(jiǎn)稱成員)。
第7章
結(jié)構(gòu)體、共用體和枚舉第1頁(yè)/共58頁(yè)3
結(jié)構(gòu)體類型
定義結(jié)構(gòu)體
定義結(jié)構(gòu)體的一般格式為:struct結(jié)構(gòu)體名{
成員列表
}變量名列表;
第7章
結(jié)構(gòu)體、共用體和枚舉第2頁(yè)/共58頁(yè)4說(shuō)明:
結(jié)構(gòu)體定義是以關(guān)鍵字struct開始的,結(jié)構(gòu)體名應(yīng)是有效的C++標(biāo)識(shí)符。結(jié)構(gòu)體中的每個(gè)成員都必須通過(guò)定義來(lái)確定成員名及其類型。例如:structstudent{intnum; //學(xué)號(hào)charname[20]; //姓名charsex; //性別intage; //年齡}student1;
第7章
結(jié)構(gòu)體、共用體和枚舉第3頁(yè)/共58頁(yè)5
其中,student是定義的結(jié)構(gòu)體名,該結(jié)構(gòu)體有四個(gè)成員變量num、name、sex、age。student1是定義的結(jié)構(gòu)體變量。結(jié)構(gòu)必須至少包含一個(gè)成員。
也可以在結(jié)構(gòu)體定義后再定義結(jié)構(gòu)體變量。
格式是:struct結(jié)構(gòu)體名變量名列表;
第7章
結(jié)構(gòu)體、共用體和枚舉第4頁(yè)/共58頁(yè)6如:structstudent{intnum; //學(xué)號(hào)
charname[20]; //姓名
charsex; //性別
intage; //年齡};structstudentstudent1;或studentstudent1;
第7章
結(jié)構(gòu)體、共用體和枚舉第5頁(yè)/共58頁(yè)7結(jié)構(gòu)體變量的初始化結(jié)構(gòu)體變量的初始化就是在定義結(jié)構(gòu)體變量的同時(shí),為其成員提供初值,可采用以下兩種方法:(1)在定義結(jié)構(gòu)體類型的同時(shí),為結(jié)構(gòu)體變量初始化。
struct結(jié)構(gòu)體名{成員列表
}變量名={初始值列表};
第7章
結(jié)構(gòu)體、共用體和枚舉第6頁(yè)/共58頁(yè)8如:structstudent{intnum; //學(xué)號(hào)
charname[20]; //姓名
charsex; //性別
intage; //年齡
}student1={9901,"wang",‘f’,23};
第7章
結(jié)構(gòu)體、共用體和枚舉第7頁(yè)/共58頁(yè)9(2)利用已有的結(jié)構(gòu)體類型定義結(jié)構(gòu)體變量,并同時(shí)初始化。格式是:結(jié)構(gòu)體名稱變量名={值1,值 2,……};如:student stu={1,”zhang”,’M’,20,90.0};此時(shí),student1變量中的num成員的值為9901,name成員的值為"wang",sex成員的值為23。
第7章
結(jié)構(gòu)體、共用體和枚舉第8頁(yè)/共58頁(yè)10結(jié)構(gòu)體變量的引用
定義了結(jié)構(gòu)體變量以后,就可以在程序中使用這些變量。引用結(jié)構(gòu)體變量時(shí)應(yīng)注意:(1)不能將結(jié)構(gòu)體變量作為一個(gè)整體來(lái)引用,只能引用結(jié)構(gòu)體變量中的成員。引用結(jié)構(gòu)體變量中成員的格式為:
結(jié)構(gòu)體變量名.成員名
如:cout<<;此處的“.”是成員運(yùn)算符,它的優(yōu)先級(jí)別最高。
第7章
結(jié)構(gòu)體、共用體和枚舉第9頁(yè)/共58頁(yè)11結(jié)構(gòu)體變量的引用
(2)若結(jié)構(gòu)體的成員本身又是一個(gè)結(jié)構(gòu)體變量,則要使用多個(gè)成員運(yùn)算符,一級(jí)一級(jí)地找到最低一級(jí)的成員進(jìn)行引用。如:
structBirthTime{intyear;intmonth;intday;};structStudent{charnum[20];//學(xué)號(hào)BirthTimebirth_day;//出生日期}stu1;
stu1.birth_day.month=10;
第7章
結(jié)構(gòu)體、共用體和枚舉第10頁(yè)/共58頁(yè)12結(jié)構(gòu)體變量的引用
(3)對(duì)結(jié)構(gòu)體成員變量的使用可像普通那樣進(jìn)行,如:進(jìn)行賦值,參加運(yùn)算等。如:students1,s2;s1.num=9901;s2.num=s1.num+1;
第7章
結(jié)構(gòu)體、共用體和枚舉第11頁(yè)/共58頁(yè)13結(jié)構(gòu)體變量的引用
(4)可以將一個(gè)已有值的結(jié)構(gòu)體變量的值直接賦給另外一個(gè)相同類型的結(jié)構(gòu)體變量。方法是:
結(jié)構(gòu)體變量名1=結(jié)構(gòu)體變量名2;如:
studentst1={1,”zhang”,’M’,20,90.0};studentst2;st2=st1;
第7章
結(jié)構(gòu)體、共用體和枚舉第12頁(yè)/共58頁(yè)14結(jié)構(gòu)體變量的引用
(5)可以引用成員的地址。也可以引用結(jié)構(gòu)體變量的地址。如:&student.num&st1//Demo:
//結(jié)構(gòu)體類型的應(yīng)用--順序表的逆置操作.cpp
第7章
結(jié)構(gòu)體、共用體和枚舉第13頁(yè)/共58頁(yè)15結(jié)構(gòu)數(shù)組
結(jié)構(gòu)數(shù)組:即數(shù)據(jù)類型為結(jié)構(gòu)體類型的數(shù)組,這樣,數(shù)組中的每個(gè)元素都屬于同一種結(jié)構(gòu)體類型,每一元素都分別包含了結(jié)構(gòu)體中的每個(gè)成員。
第7章
結(jié)構(gòu)體、共用體和枚舉第14頁(yè)/共58頁(yè)16結(jié)構(gòu)數(shù)組1.結(jié)構(gòu)數(shù)組的定義structstudent{intnum;charname[20];intage;floatscore;charaddr[30];};studentstu[3];或者?
第7章
結(jié)構(gòu)體、共用體和枚舉第15頁(yè)/共58頁(yè)17結(jié)構(gòu)數(shù)組
這就定義了一個(gè)結(jié)構(gòu)數(shù)組stu,它已含三個(gè)元素,其中每個(gè)元素都為student類型,且每個(gè)數(shù)組元素都各自擁有自己的一套結(jié)構(gòu)成員num、name、age、score和addr。
第7章
結(jié)構(gòu)體、共用體和枚舉第16頁(yè)/共58頁(yè)18
2.結(jié)構(gòu)體數(shù)組的初始化
結(jié)構(gòu)體數(shù)組在定義時(shí)也可以進(jìn)行初始化。其初始化方法與一般數(shù)組的初始化方法基本相同,只是必須為每個(gè)元素提供各結(jié)構(gòu)成員的值,如:
structstudent{intnum; charname[20]; charsex; intage;};studentstu[3]={{1,"sum1",‘M’,20},{2,"zhao2",‘M’,25},{3,"qian3",‘M’,21}};
第7章
結(jié)構(gòu)體、共用體和枚舉第17頁(yè)/共58頁(yè)19指向結(jié)構(gòu)體類型的指針1.指向結(jié)構(gòu)體變量的指針
結(jié)構(gòu)體變量的指針:是指結(jié)構(gòu)體變量所占內(nèi)存單元的起始地址。因此,可以定義指針變量指向結(jié)構(gòu)體變量。此時(shí)該指針變量的值就是結(jié)構(gòu)體變量在內(nèi)存中起始地址。
第7章
結(jié)構(gòu)體、共用體和枚舉第18頁(yè)/共58頁(yè)20指向結(jié)構(gòu)體類型的指針【例】指向結(jié)構(gòu)體變量的指針的使用。
#include"iostream"usingnamespacestd;voidmain(void){structstudent{//定義結(jié)構(gòu)體類型studentlongintnum;charname[20];charsex;floatscore;};studentstu1;//定義結(jié)構(gòu)體類型student的變量stu1student*p;//定義student類型的指針變量pp=&stu1;//將結(jié)構(gòu)體變量stu1的地址賦給指針變量p
第7章
結(jié)構(gòu)體、共用體和枚舉第19頁(yè)/共58頁(yè)21stu1.num=1;//分別給結(jié)構(gòu)體變量stu1的各成員賦值strcpy(,"lilin");stu1.sex='M';stu1.score=89;//輸出stu1各成員的值cout<<stu1.num<<"\t"<<<<"\t"<<stu1.sex<<"\t"<<stu1.score<<endl;//借助指針變量p輸出它所指向的結(jié)構(gòu)體變量各成員的值cout<<(*p).num<<"\t"<<(*p).name<<"\t"<<(*p).sex<<"\t"<<(*p).score<<endl;cout<<p->num<<"\t"<<p->name<<"\t"<<p->sex<<"\t"<<p->score<<endl;}
第7章
結(jié)構(gòu)體、共用體和枚舉第20頁(yè)/共58頁(yè)22程序的運(yùn)行結(jié)果:1lilinM891lilinM891lilinM89可見,三種訪問(wèn)結(jié)構(gòu)體變量各成員的值的結(jié)果完全相同。說(shuō)明:(1)上例中(*p).num也可寫為p->num。(2)結(jié)構(gòu)體取成員的運(yùn)算可以采用以下三種形式:①結(jié)構(gòu)體變量名.成員名②(*結(jié)構(gòu)體指針變量名).成員名③結(jié)構(gòu)體指針變量名->成員名
第7章
結(jié)構(gòu)體、共用體和枚舉第21頁(yè)/共58頁(yè)23指向結(jié)構(gòu)體數(shù)組首元素的指針【例】指向結(jié)構(gòu)體的指針的使用。#include<iostream>usingnamespacestd;structstudent{intnum;charname[20];charsex;intage;};studentstu[3]={{1,"lilin",'M',18},{2,"sum",'M',19},{3,"zhao",'M',20}};voidmain(void){
第7章
結(jié)構(gòu)體、共用體和枚舉第22頁(yè)/共58頁(yè)24指向結(jié)構(gòu)體數(shù)組首元素的指針
student*p;for(p=stu;p<stu+3;p++)cout<<p->num<<"\t"<<p->name<<"\t"<<p->sex<<"\t"<<p->age<<endl;}程序的輸出結(jié)果為:1lilin
M182sumM193zhaoM20
第7章
結(jié)構(gòu)體、共用體和枚舉第23頁(yè)/共58頁(yè)25指向結(jié)構(gòu)體數(shù)組首元素的指針說(shuō)明:把stu賦給指針變量p,就表示p指向了該數(shù)組的首元素(p的值為數(shù)組的起始地址)。p++表示p指向數(shù)組的下一個(gè)元素,利用這種方法可以訪問(wèn)數(shù)組中所有元素的值。//Demo:結(jié)構(gòu)數(shù)組的應(yīng)用例子//結(jié)構(gòu)數(shù)組的應(yīng)用舉例--排序.cpp
第7章
結(jié)構(gòu)體、共用體和枚舉第24頁(yè)/共58頁(yè)26用結(jié)構(gòu)體類型作為函數(shù)的參數(shù)1.用結(jié)構(gòu)體類型的變量作函數(shù)的參數(shù)(傳值)在C++語(yǔ)言中,允許把結(jié)構(gòu)體類型的變量直接作為函數(shù)的參數(shù),但要注意:此時(shí)主調(diào)函數(shù)的調(diào)用點(diǎn)上的實(shí)參與被調(diào)函數(shù)相應(yīng)位置上的形參必須是相同的結(jié)構(gòu)體類型,是將實(shí)參的值(各成員的值)傳遞給相應(yīng)的形參。
第7章
結(jié)構(gòu)體、共用體和枚舉第25頁(yè)/共58頁(yè)27用結(jié)構(gòu)體類型作為函數(shù)的參數(shù)【例】用結(jié)構(gòu)體類型的變量作為函數(shù)的參數(shù)。
#include"iostream“usingnamespacestd;structstudent{intnum;charname[20];charsex;intage;};voidprint(students){cout<<s.num<<"\t"<<<<"\t"<<s.sex<<"\t“<<s.age<<"\t"<<endl;}
第7章
結(jié)構(gòu)體、共用體和枚舉第26頁(yè)/共58頁(yè)28
studentstu[3]={{1,"lilin",'M',18}, {2,"sum",'M',19}, {3,"zhao",'M',20}};voidmain(void){inti;for(i=0;i<3;i++)print(stu[i]);}程序的執(zhí)行結(jié)果是:1lilinM182sumM193zhaoM20
第7章
結(jié)構(gòu)體、共用體和枚舉第27頁(yè)/共58頁(yè)29可見,當(dāng)把一個(gè)結(jié)構(gòu)體類型的變量作為函數(shù)的參數(shù)時(shí),可以將該變量的值(包含結(jié)構(gòu)體類型中各成員的值)傳遞給被調(diào)函數(shù)的形參。用指向結(jié)構(gòu)體的指針作函數(shù)的參數(shù)(傳指針)用指向結(jié)構(gòu)體變量的指針作參數(shù)。這種方式同指針作為函數(shù)的參數(shù)的原理一致,傳遞的是結(jié)構(gòu)體變量的地址(指針)。
第7章
結(jié)構(gòu)體、共用體和枚舉第28頁(yè)/共58頁(yè)30【例】用指針的方法實(shí)現(xiàn)上例程序的功能。
#include"iostream“usingnamespacestd;structstudent{intnum;charname[20];charsex;intage;};voidprint(student*);studentstu[3]={{1,"lilin",'M',18},{2,"sum",'M',19},{3,"zhao",'M',20}};voidmain(void){inti;for(i=0;i<3;i++)print(&stu[i]);}voidprint(student*s){cout<<s->num<<"\t"<<s->name<<"\t"<<s->sex<<"\t“<<s->age<<"\t"<<endl;}
第7章
結(jié)構(gòu)體、共用體和枚舉第29頁(yè)/共58頁(yè)31用結(jié)構(gòu)體變量的引用作為函數(shù)的參數(shù)此時(shí),被調(diào)函數(shù)的形參必須聲明成引用形式,函數(shù)的形參作為實(shí)參的一個(gè)別名來(lái)使用,從而達(dá)到對(duì)實(shí)參操作的目的?!纠坑媒Y(jié)構(gòu)體變量引用的方法實(shí)現(xiàn)例2-28程序的功能。#include"iostream"usingnamespacestd;structstudent{intnum;charname[20];charsex;intage;};
第7章
結(jié)構(gòu)體、共用體和枚舉第30頁(yè)/共58頁(yè)32voidprint(student&);studentstu[3]={{1,"lilin",'M',18},{2,"sum",'M',19},{3,"zhao",'M',20}};voidmain(void){inti;for(i=0;i<3;i++)print(stu[i]);}voidprint(student&s){cout<<s.num<<"\t"<<<<"\t"<<s.sex<<"\t"<<s.age<<"\t"<<endl;}
第7章
結(jié)構(gòu)體、共用體和枚舉第31頁(yè)/共58頁(yè)33返回結(jié)構(gòu)體類型的函數(shù)1.返回結(jié)構(gòu)類型值的函數(shù)的定義其定義格式如下:結(jié)構(gòu)體名稱函數(shù)名(形參及類型說(shuō)明){
函數(shù)體}【例】定義一個(gè)返回結(jié)構(gòu)體類型的函數(shù),求所有同學(xué)中年齡最大的同學(xué)。
第7章
結(jié)構(gòu)體、共用體和枚舉第32頁(yè)/共58頁(yè)34#include"iostream"usingnamespacestd;structstudent{intnum;charname[20];charsex;intage;};studentmax(student*,int);studentstu[3]={{1,"lilin",'M',18},{2,"sum",'M',19},{3,"zhao",'M',20}};voidmain(void){studentmaxold=max(stu,3);cout<<maxold.num<<"\t"<<<<"\t“<<maxold.age<<endl;}
第7章
結(jié)構(gòu)體、共用體和枚舉第33頁(yè)/共58頁(yè)35studentmax(student*s,intn){inti,age1,index;age1=s->age;index=0;for(i=0;i<n;i++)if(age1<(s+i)->age){index=i;age1=(s+i)->age;}return(*(s+index));}
第7章
結(jié)構(gòu)體、共用體和枚舉第34頁(yè)/共58頁(yè)36返回結(jié)構(gòu)的引用的函數(shù)與返回其它類型引用的函數(shù)的定義方法和原理一致,但注意不要返回一個(gè)局部變量的引用就可。
第7章
結(jié)構(gòu)體、共用體和枚舉第35頁(yè)/共58頁(yè)37結(jié)構(gòu)的嵌套
C++語(yǔ)言中,允許定義一個(gè)結(jié)構(gòu)體類型,該結(jié)構(gòu)類型中可以包含另外一種結(jié)構(gòu)類型的成員。如下例中定義了一個(gè)birthday結(jié)構(gòu)體類型,它含有year、month、day三個(gè)成員;又定義了第二個(gè)結(jié)構(gòu)體類型student,它含有num、sex和birth三個(gè)成員,其中birth成員是birthday結(jié)構(gòu)體類型。structbirthday{intyear;intmonth;intday;};structstudent{intnum;charsex;birthdaybirth;};
第7章
結(jié)構(gòu)體、共用體和枚舉第36頁(yè)/共58頁(yè)38studentstu;//定義student結(jié)構(gòu)體類型的變量stu
此時(shí)要訪問(wèn)stu的birth成員的值時(shí),要注意使用多個(gè)“.”操作符。如:stu.birth.year=1980;注意:C++語(yǔ)言中,不能定義一個(gè)結(jié)構(gòu)體類型,該結(jié)構(gòu)類型中包含自身結(jié)構(gòu)類型的成員。但可包含指向自身結(jié)構(gòu)類型的指針。如可定義:structstudent{intnum;charname[20];floatscore;student*next;};
不可定義:structstudent{intnum;charname[20];floatscore;studentnext;};
第7章
結(jié)構(gòu)體、共用體和枚舉第37頁(yè)/共58頁(yè)39Demos:
單鏈表的定義及運(yùn)算例.cpp單鏈表的交集.C單鏈表操作中指針作為函數(shù)參數(shù)的典型錯(cuò)誤.cpp
第7章
結(jié)構(gòu)體、共用體和枚舉第38頁(yè)/共58頁(yè)40內(nèi)容提要結(jié)構(gòu)體類型及其使用共用體類型及其使用枚舉類型及其使用類型定義typedef的使用
第7章
結(jié)構(gòu)體、共用體和枚舉第39頁(yè)/共58頁(yè)41共用體(聯(lián)合體)類型1.共用體概念
有時(shí)需要使幾中不同類型的變量放到同一段內(nèi)存單元中,如:把一個(gè)int型變量,char型變量,float型變量放于同一地址開始的內(nèi)存單元中,這三個(gè)變量在內(nèi)存中占的字節(jié)數(shù)不同,但都從同一地址開始存放,也就是使用覆蓋技術(shù),幾個(gè)變量相互覆蓋,這種使幾個(gè)不同的變量共一段內(nèi)存的結(jié)構(gòu)稱為共用體類型的結(jié)構(gòu)也叫聯(lián)合。
第7章
結(jié)構(gòu)體、共用體和枚舉第40頁(yè)/共58頁(yè)422.共用體類型的定義其定義格式為:union共用體名{成員表}變量表;如:unionData{ inti;charch;floatf;}a,b,c;這表示定義了共用體類型Data,并同時(shí)定義了屬于該種數(shù)據(jù)類型的變量a,b,c。
第7章
結(jié)構(gòu)體、共用體和枚舉第41頁(yè)/共58頁(yè)43
由此可見:其定義方式與結(jié)構(gòu)的定義方式類似,但二者的含義不同,結(jié)構(gòu)體變量所占內(nèi)存空間的大小,是各成員所占的內(nèi)存之和,每個(gè)成員分別占有自己的內(nèi)存單元,而共用體變量所占的內(nèi)存空間大小于等于占用內(nèi)存空間最大的成員的長(zhǎng)度,如上面定義的a,b,c三個(gè)共用體變量分別占4個(gè)字節(jié)。
第7章
結(jié)構(gòu)體、共用體和枚舉第42頁(yè)/共58頁(yè)44
3.共用體變量的定義(1)方法1:在定義共用體類型的同時(shí)定義該種類型的變量,如上例中的變量a、b、c就是在定義unionData類型的同時(shí)定義的共用體變量。(2)方法2:可以用已定義過(guò)的共用體數(shù)據(jù)類型,定義共用體變量。格式是:union共用體名稱變量名表;如:unionDatamydata;
第7章
結(jié)構(gòu)體、共用體和枚舉第43頁(yè)/共58頁(yè)45
4.共用體變量的引用共用體變量的使用方法基本同結(jié)構(gòu)體變量的使用方法,并同時(shí)注意以下原則:(1)不能直接使用共用體變量,而只能使用共用體變量的成員,共用體變量取成員的運(yùn)算符同結(jié)構(gòu)體變量取成員的運(yùn)算符,即用“.”。如:對(duì)于上例定義的共用體變量a來(lái)說(shuō),可用以下方法引用其中的成員:a.i引用共用體變量a中的整型變量ia.ch引用共用體變量a中的字符變量cha.f引用共用體變量a中的浮點(diǎn)型變量f
第7章
結(jié)構(gòu)體、共用體和枚舉第44頁(yè)/共58頁(yè)46
(2)共用體類型的特點(diǎn):共用體類型可以使用覆蓋技術(shù)使幾個(gè)不同類型的變量(成員)共同占用和使用一塊內(nèi)存空間,所以,在每一瞬時(shí)只有一個(gè)成員起作用,其他的成員不起作用。如:a.i=1;a.c=‘a(chǎn)’;a.f=2.1;之后,只有a.f是有效的,可以cout<<a.f;但不能cout<<a.c;
第7章
結(jié)構(gòu)體、共用體和枚舉第45頁(yè)/共58頁(yè)47
(3)不能對(duì)共用體變量名賦值,也不能定義時(shí)進(jìn)行初始化。(4)不能把共用體變量作為函數(shù)參數(shù),也不能使函數(shù)返回共用體變量,但可以使用指向共用體的指針。(5)共用體變量的地址和各成員的地址都是同一地址。如:&a&a.i,&a.f同一地址值。(6)允許定義共用體數(shù)組。
第7章
結(jié)構(gòu)體、共用體和枚舉第46頁(yè)/共58頁(yè)48
(6)共用體也可以沒有名稱,稱為無(wú)名共用體。無(wú)名共用體沒有標(biāo)記名,只是聲明一個(gè)成員項(xiàng)的集合,這些成員項(xiàng)具有相同的內(nèi)存地址,可以由成員項(xiàng)的名字直接訪問(wèn)。如:union{inti;floatf;};在程序中可以這樣使用:i=10;f=2.2;無(wú)名共用體通常作結(jié)構(gòu)體的內(nèi)嵌成員。Demo:共用體例1.cpp共用體例2.cpp
第7章
結(jié)構(gòu)體、共用體和枚舉第47頁(yè)/共58頁(yè)49內(nèi)容提要結(jié)構(gòu)體類型及其使用共用體類型及其使用枚舉類型及其使用類型定義typedef的使用
第7章
結(jié)構(gòu)體、共用體和枚舉第48頁(yè)/共58頁(yè)50枚舉類型1.枚舉類型及其定義方法如果一個(gè)變量只有幾種可能的取值時(shí),就可以把它定義為枚舉類型,所謂枚舉就是指將某一變量所有可能的取值一一列舉出來(lái)。枚舉類型的定義格式是:
enum
枚舉類型名{枚舉元素表}枚舉變量名;
第7章
結(jié)構(gòu)體、共用體和枚舉第49頁(yè)/共58頁(yè)51如:
enumweekday{sun,mon,tue,wed,thu,fri,sat}Workday;這表示定義了枚舉類型Weekday,并同時(shí)定義了屬于該種類型的變量workday,該變量的取值范圍為sun~sat。其中sun~sat稱為枚舉元素,是Weekday枚舉類型變量的所有可能取值。
第7章
結(jié)構(gòu)體、共用體和枚舉第50頁(yè)/共58頁(yè)522.枚舉變量的定義(1)方法1:在定義枚舉類型的同時(shí)定義該種類型的變量,如上例中的變量workday就是在定義enumWeekday類型的同時(shí)定義的枚舉變量。(2)方法2:可以用已定義過(guò)的枚舉數(shù)據(jù)類型,定義枚舉變量。格式是:
enum
枚舉名稱變量名表;如:可以利用已有的枚舉類型Weekday定義變量enumWeekdaymyworkday;
第7章
結(jié)構(gòu)體、共用體和枚舉第51頁(yè)/共58頁(yè)533.枚舉變量的使用方法
(1)由于枚舉類型中列出了該種類型變量的所有可能取值,所以可以將某一枚舉元素賦給該種類型的變量,如:Workday=mon;是可以的。(2)在c++中,對(duì)枚舉元素作常量處理,所以枚舉元素不是變量,不能對(duì)它們賦值,如:sun=0;mon=1;不對(duì)。(3)枚舉元素作為常量,它們是有值的,C++語(yǔ)言編譯系統(tǒng)按定義時(shí)的順序使它們的值為0,1,2……。如:enumWeekday{sun,mon,tue,wen,thu,fri,sat}workday;中,枚舉元素sun的值為0,mon元素的值為1,……。如果有賦值語(yǔ)句workday=thu;則說(shuō)明變量workday的值為4。
第7章
結(jié)構(gòu)體、共用體和枚舉第52頁(yè)/共58頁(yè)54(4)當(dāng)需要改變枚舉元素的默認(rèn)值時(shí),可以在定義枚舉類型的同時(shí)在枚舉元素的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年長(zhǎng)沙衛(wèi)生職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)筆試備考試題含詳細(xì)答案解析
- 2026年綿陽(yáng)職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)筆試模擬試題含詳細(xì)答案解析
- 2026年齊齊哈爾高等師范??茖W(xué)校單招綜合素質(zhì)考試備考試題含詳細(xì)答案解析
- 2026年山西水利職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)筆試模擬試題含詳細(xì)答案解析
- 2026貴州貴陽(yáng)花溪區(qū)孟關(guān)中心完小招聘7人參考考試試題及答案解析
- 2026年安徽揚(yáng)子職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)考試模擬試題含詳細(xì)答案解析
- 2026年廣西職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能考試備考題庫(kù)含詳細(xì)答案解析
- 2026年河南護(hù)理職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)筆試備考試題含詳細(xì)答案解析
- 2026年保定幼兒師范高等??茖W(xué)校單招綜合素質(zhì)考試參考題庫(kù)含詳細(xì)答案解析
- 2026年重慶人文科技學(xué)院?jiǎn)握芯C合素質(zhì)筆試模擬試題含詳細(xì)答案解析
- 研學(xué)旅行概論課程培訓(xùn)課件
- 專業(yè)律師服務(wù)合同書樣本
- 反詐宣傳講座課件
- GB/T 6003.2-2024試驗(yàn)篩技術(shù)要求和檢驗(yàn)第2部分:金屬穿孔板試驗(yàn)篩
- DB32T 4398-2022《建筑物掏土糾偏技術(shù)標(biāo)準(zhǔn)》
- (精確版)消防工程施工進(jìn)度表
- 保險(xiǎn)公司資產(chǎn)負(fù)債表、利潤(rùn)表、現(xiàn)金流量表和所有者權(quán)益變動(dòng)表格式
- 電磁流量說(shuō)明書
- XX少兒棋院加盟協(xié)議
- 五年級(jí)數(shù)學(xué)應(yīng)用題專題訓(xùn)練50題
- 2021年四川省資陽(yáng)市中考數(shù)學(xué)試卷
評(píng)論
0/150
提交評(píng)論