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ù)值從同一地址開(kāi)始存儲(chǔ),但是任一時(shí)刻只能存儲(chǔ)其中一種數(shù)據(jù),而不是同時(shí)存儲(chǔ)多種數(shù)據(jù)。分配給共用體的存儲(chǔ)區(qū)域大小至少要有存儲(chǔ)其中最大的一種數(shù)據(jù)所需要的存儲(chǔ)空間量。
3: 答: 在實(shí)際應(yīng)用中,有的變量只有幾種可能的取值。如表示顏色的名稱,表示月份的名稱等。為了提高程序描敘問(wèn)題的直觀性,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)類型定義或者說(shuō)明變量時(shí),可只寫標(biāo)準(zhǔn)名指明變量數(shù)據(jù)類型。c語(yǔ)言也提供使用typedef 定義類型,為類型定義命名的機(jī)制。用typedef定義新的類型名后,對(duì)于結(jié)構(gòu)體,共用體或者枚舉類型,使用他們定義或說(shuō)明變量時(shí)不必說(shuō)明變量時(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