結構體類型的通常格式:數組
struct 結構體名{成員列表};函數
1.數據類型能夠不所有一致spa
2.方便描述對象指針
3.結構體成員能夠嵌套其餘的結構體,描述事物更加貼切對象
1.結構體類型名 結構體變量名;字符串
as:struct Student student1,student2;變量
2.在聲明類型的時候同時定義變量數據類型
struct 結構體名{方法
成員表列數據
}變量名錶列;
as:
struct Student{
..............
}student1,student2;
3.不指定類型名而直接定義結構體類型變量
//此種方法沒有指定結構體名字,故,沒法用這個結構體類型去定義其餘變量
struct{
成員表列
}變量名錶列;
結構體變量名.成員名
.的運算符的優先級最高,故,對student1.age++是對(student1.age++)進行自加運算,而不是對age進行運算
ps:strcmp字符串比較函數
1.struct 結構體名
{成員表列}數組名【數組長度】;
2.先聲明一個結構體類型再用此類型定義結構體數組
結構體類型 數組名【數組長度】;
as:struct Person leader【3】;//leader是結構體數組名
3.對結構體數組的初始化,是在結構體數組定義的後面加上
={初始表列};
結構體指針就是指向結構體變量的指針,該結構體變量的起始地址就是這個結構體變量的指針。
若是把一個結構體變量的起始地址存在一個指針變量中,那麼該指針變量就是指向該結構體變量
指向結構體對象的指針變量既能夠指向結構體變量,也能夠指向結構體數組中的元素。指針變量的基類型必須與結構體變量的類型相同。
as:struct Student *pt;
(*pt)表示pt指向的結構體變量
(*pt).num表示pt指向的結構體變量中的成員num--------等價於pt->num
1.stu.成員名(as:stu.num)
2.(星號p).成員名(如(星號p).num)
3.p->成員名(as:p->num)
將一個結構體變量的值傳遞給另外一個函數方法有三:
1.結構體變量的成員做參數------屬於「值傳遞」
2.用結構體變量做實參------屬於「值傳遞」-------開銷大,值沒法改變,故該方法不多用
3.用結構體變量(或數組元素)的指針做實參,將結構體變量的地址傳給形參