第9章 結(jié)構(gòu)體數(shù)據(jù)類型與鏈表
第10章 共用體與枚舉類型
1:????答:???????????????共用體使幾種不同類型的值存放在同一內(nèi)存區(qū)域中。?例如,?把一個(gè)整型值和字符值放在同一個(gè)存儲(chǔ)區(qū)域,?既能以整型存儲(chǔ),?又能以字符存儲(chǔ)。共用體類型的定義形式與結(jié)構(gòu)體的定義形式相同,?只是其類型關(guān)鍵字不同,共用體的關(guān)鍵字為union.一般???????????????????形式為:
????????????????????????????????????union???共用體類型名
????????????????????????????????????{
成員列表
????????????????????????????????????};
????????????????????????????例如:??union?data
????????????????????????????????????{
int?i;
char?ch;
float?f;
????????????????????????????????????};
2:???答:??共用體不同與結(jié)構(gòu)體,某一時(shí)刻,存與共用體的只有一種數(shù)據(jù),而結(jié)構(gòu)體是所有成分都存儲(chǔ)著的。即共用體是幾種數(shù)據(jù)值的覆蓋存儲(chǔ),幾種不同類型的數(shù)據(jù)值從同一地址開始存儲(chǔ),但是任一時(shí)刻只能存儲(chǔ)其中一種數(shù)據(jù),而不是同時(shí)存儲(chǔ)多種數(shù)據(jù)。分配給共用體的存儲(chǔ)區(qū)域大小至少要有存儲(chǔ)其中最大的一種數(shù)據(jù)所需要的存儲(chǔ)空間量。
3:????答:?????在實(shí)際應(yīng)用中,有的變量只有幾種可能的取值。如表示顏色的名稱,表示月份的名稱等。為了提高程序描敘問題的直觀性,ANSI?C引入允許程序員定義枚舉類型的機(jī)制。程序用枚舉方法列舉一組標(biāo)識(shí)符作為枚舉類型的值的集合。當(dāng)一個(gè)變量具有這種枚舉類型的時(shí),它就能取枚舉類型的標(biāo)識(shí)符值。枚舉類型的一般形式為:
?????????????????????????????enum?枚舉類型名(標(biāo)識(shí)符1,標(biāo)識(shí)符2,標(biāo)識(shí)符3,......標(biāo)識(shí)符n);
??????????????????????????例如:定義一個(gè)枚舉類型和枚舉變量如下:
????????????????????????????????enum?colorname(red,yellow,blue,white,black);
????????????????????????????????enum?colorname?color;
4:?????(1):16
????????(2):15
(3):5
(4):1
5: 答:在使用標(biāo)準(zhǔn)類型定義或者說明變量時(shí),可只寫標(biāo)準(zhǔn)名指明變量數(shù)據(jù)類型。c語(yǔ)言也提供使用typedef?定義類型,為類型定義命名的機(jī)制。用typedef定義新的類型名后,對(duì)于結(jié)構(gòu)體,共用體或者枚舉類型,使用他們定義或說明變量時(shí)不必說明變量時(shí)不必再冠以類型類別關(guān)鍵字。
? (1)簡(jiǎn)單的名字替換??例如:typedef?int?INEEGER
? (2)?定義一個(gè)類型名代表一個(gè)結(jié)構(gòu)體類型??例如:
typedef?struct
{??long?num;
???char?name[2];
???float?score;
}stu;
? ? ?(3)定義數(shù)組類型:例如:?typedef?int?count[20];???count?a,b;
? ? ?(4)定義指針類型:?例如:typedef?char?*stri;???stri?p1,p2,p[10];
?
6?(1):????0,4,5,-2
(2):????177771,177777
(3):????C?language??????????404
(4):????0000000001000001