/ 結構體 數組
/ 聲明結構體類型的通常形式:函數
struct 結構體名[--表示的是這個結構體的類型] 指針
{內存
成員列表 io
}; [不要漏掉這個";"] 變量
/ 聲明結構能夠放在main函數內,也能夠放在main函數外 引用
/ 定義結構體變量的通常形式: nio
struct 結構體名 結構體變量名; 數據
如:struct Product product1; 時間
/ 聲明結構體的同時定義結構體變量(能夠是多個)
如:
struct Product
{
char name[10];
char color[10];
int price;
}product1,product2;
/ 引用結構體變量
/ 不能將結構體變量做爲一個總體進行輸入輸出
/ 對結構體變量進行賦值、存儲或運算,實質上就是對結構體成員的操做
/ 引用的通常形式:
結構體變量.結構體成員
如:product1.name="icecream";
product2.price=20;
[至關於,product1.name纔是真正的變量]
/ 結構體類型的初始化
如:
(1) struct Student
{
char name[10];
char sex[10];
int grade;
}student1={"HanXue","W",3};
(2) struct Student student2={"WangJie","M",4};
/ 結構體數組
/ 通常形式
struct Student
{
char name[10];
char sex[10];
int grade;
}sudent[5];
/ 數組中的各數據在內存中的存儲是連續的
/ 指向結構體變量的結構體指針
/ 結構體指針指向結構體變量的起始地址
/ 通常形式
struct 結構體類型 *指針名;
如:strcut Student *pStruct;
/ 引用
/ 使用 . 運算符引用結構成員
如:(*pStrcut).name="HanXue"; [括號不能省略,由於"."的運算優先級最高]
/ 使用指向運算符引用結構成員:pStruct -> 成員名
如:pStruct -> name = "HanXue";
/ 共用體
/ 共用體也稱聯合,它使幾種不一樣類型的變量存放到同一段內存單元中,因此共用體在同一時刻只能有一個值,它屬於某一數據成員
/ 因爲全部成員處於同一塊內存,所以共用體的大小就等於最大成員的大小
/ 共用體的通常形式
union 共用體名
{
成員列表
}變量列表;
/ 共用體與結構體的區別
/ 共用體定義了一塊爲全部數據成員共享的內存
/ 結構體定義了一個由多個數據成員組成的特殊類型,結構體變量的大小是全部數據成員的總和
/ 聲明、定義、引用等和結構體相似
/ 對共用體變量進行初始化時,只須要一個初始化值,其類型必須和共用體的第一個成員的類型相同
/ 若是第一個成員是一個結構體類型,則初始化值中能夠包含多個因爲初始化該結構的表達式
/ 同一內存段能夠存放集中不一樣類型的成員,可是每一次只能存放其中一種類型,而不是同時存放全部的類型;
/ 也就是說,在共用體中,同一時間只能有一個成員起做用
/ 枚舉類型
/ 枚舉變量的定義
enum 枚舉變量名(枚舉常量);
/ 一個枚舉變量包括一組相關的標識符,其中每一個標識符都對應一個整數值,稱爲枚舉常量;枚舉常量的標識符默認從0開始依次疊加