用戶自定義的數據類型及其擴展

1、結構體

結構體類型的通常格式:數組

struct 結構體名{成員列表};函數

結構體的優勢

1.數據類型能夠不所有一致spa

2.方便描述對象指針

3.結構體成員能夠嵌套其餘的結構體,描述事物更加貼切對象

2、定義結構體變量的三種方法

1.結構體類型名 結構體變量名;字符串

as:struct Student student1,student2;變量

2.在聲明類型的時候同時定義變量數據類型

struct 結構體名{方法

成員表列數據

}變量名錶列;

as:

struct Student{

..............

}student1,student2;

3.不指定類型名而直接定義結構體類型變量

//此種方法沒有指定結構體名字,故,沒法用這個結構體類型去定義其餘變量

struct{

成員表列

}變量名錶列;

3、對結構體變量裏的成員進行賦值

結構體變量名.成員名

.的運算符的優先級最高,故,對student1.age++是對(student1.age++)進行自加運算,而不是對age進行運算

ps:strcmp字符串比較函數

2、結構體數組

定義結構體數組三種形式

1.struct 結構體名

{成員表列}數組名【數組長度】;

2.先聲明一個結構體類型再用此類型定義結構體數組

結構體類型 數組名【數組長度】;

as:struct Person leader【3】;//leader是結構體數組名

3.對結構體數組的初始化,是在結構體數組定義的後面加上

={初始表列};

3、結構體指針

基本定義

結構體指針就是指向結構體變量的指針,該結構體變量的起始地址就是這個結構體變量的指針。

若是把一個結構體變量的起始地址存在一個指針變量中,那麼該指針變量就是指向該結構體變量

指向結構體對象的指針變量既能夠指向結構體變量,也能夠指向結構體數組中的元素。指針變量的基類型必須與結構體變量的類型相同。

as:struct Student *pt;

(*pt)表示pt指向的結構體變量

(*pt).num表示pt指向的結構體變量中的成員num--------等價於pt->num

2、若是p指向一個結構體變量stu,有以下三種等價方法

1.stu.成員名(as:stu.num)

2.(星號p).成員名(如(星號p).num)

3.p->成員名(as:p->num)

4、結構體變量與結構體變量的指針作函數參數

將一個結構體變量的值傳遞給另外一個函數方法有三:

1.結構體變量的成員做參數------屬於「值傳遞」

2.用結構體變量做實參------屬於「值傳遞」-------開銷大,值沒法改變,故該方法不多用

3.用結構體變量(或數組元素)的指針做實參,將結構體變量的地址傳給形參

相關文章
相關標籤/搜索