復(fù)合類型是一種自定義類型,用于擴(kuò)展基本數(shù)據(jù)類型脖咐。
復(fù)合數(shù)據(jù)類型包括:結(jié)構(gòu)類型、共用體類型和枚舉類型。
用 typedef 定義新類型名
C語言允許用 typedef 定義已知類型的新類型名(別名)黔龟。
格式:typedef 類型名 標(biāo)識(shí)符妇智;
說明:
- 類型名必須是之前已經(jīng)定義的類型標(biāo)識(shí)符
- 標(biāo)識(shí)符是用戶定義的用作一直類型的新類型名的標(biāo)識(shí)符
- 標(biāo)識(shí)符通常用大寫字母表示
- 原有類型名仍然有效
typedef int INTEGER
INTEGER a,b;
int a,b; //等價(jià)于
結(jié)構(gòu)體
結(jié)構(gòu)體類型的說明
C語言的基本數(shù)據(jù)類型有整型滥玷、浮點(diǎn)型、字符型巍棱、雙精度型
結(jié)構(gòu)體類型的定義
形式:
struct 結(jié)構(gòu)體標(biāo)識(shí)名
{
成員列表
類型說明符 結(jié)構(gòu)成員名惑畴;
};
示例
struct student
{
int num;
char name[12];
char sex;
float score;
}航徙;
注意
- “struct”是定義結(jié)構(gòu)類型的關(guān)鍵字如贷,不可忽略
- 成員列表是對(duì)結(jié)構(gòu)類型中各成員組成的一個(gè)說明,分號(hào)不可忽略
- 結(jié)構(gòu)類型定義作為一條語句到踏,最后一個(gè)花括號(hào)的分號(hào)不可忽略
結(jié)構(gòu)體類型的變量杠袱、數(shù)組和指針變量的定義
結(jié)構(gòu)變量說明三種方法
- 先定義結(jié)構(gòu),然后說明結(jié)構(gòu)變量(主推)
struct student
{
int num;
char name[12];
char sex;
float score;
}窝稿;
struct student zhang楣富,liu;
- 在定義結(jié)構(gòu)類型的同時(shí)說明變量
struct student
{
int num;
char name[12];
char sex;
float score;
}zhang伴榔,liu纹蝴;
- 直接說明結(jié)構(gòu)變量
struct //無student
{
int num;
char name[12];
char sex;
float score;
}zhang庄萎,liu;
定義結(jié)構(gòu)體類型的指針塘安、數(shù)組
struct student class[3]
struct student *pstu1;
結(jié)構(gòu)類型的嵌套有兩種形式
一種是直接嵌套定義在內(nèi)部糠涛、一種先寫好小的結(jié)構(gòu)體類型在把它放到大的結(jié)構(gòu)體中
給結(jié)構(gòu)體變量、數(shù)組賦初值
給結(jié)構(gòu)體變量賦值就是給各個(gè)成員賦值
簡(jiǎn)單兼犯、嵌套結(jié)構(gòu)體變量的初始化忍捡,在定義變量的同時(shí)初始化該變量
struct worker
{
int num;
char name[12];
char sex;
float salary;
}sun={158,"sunbing",'m',5500};
另外免都,給結(jié)構(gòu)體變量賦值也可以先定義結(jié)構(gòu)體變量锉罐,然后分別對(duì)各個(gè)成員進(jìn)行初始化賦值,但是需要用到成員運(yùn)算符 “ . ”绕娘。
sun.num=101;
結(jié)構(gòu)體變量中的數(shù)據(jù)引用
表示結(jié)構(gòu)變量的一般形式
結(jié)構(gòu)體變量名.成員名
sun.num
stu[i].score
另外脓规,嵌套結(jié)構(gòu)必須逐級(jí)找到最低級(jí)成員才能使用