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