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引入允許程序員定義枚舉類型的機制。程序用枚舉方法列舉一組標(biāo)識符作為枚舉類型的值的集合。當(dāng)一個變量具有這種枚舉類型的時,它就能取枚舉類型的標(biāo)識符值。枚舉類型的一般形式為:
enum 枚舉類型名(標(biāo)識符1,標(biāo)識符2,標(biāo)識符3,......標(biāo)識符n);
例如:定義一個枚舉類型和枚舉變量如下:
enum colorname(red,yellow,blue,white,black);
enum colorname color;
4: (1):16
(2):15
(3):5
(4):1
5: 答: 在使用標(biāo)準(zhǔn)類型定義或者說明變量時,可只寫標(biāo)準(zhǔn)名指明變量數(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