自定義型別:結構體,列舉,聯合體
結構體:
結構體是一些值的集合,這些值成為成員變數,結構體的每乙個成員都可以是不同型別的變數。
結構體的宣告:
struct tagvariable-list;
例如描述乙個學生:
struct stu;//必須要有分號
結構體的成員:
結構體的成員可以是標量、陣列、指標、甚至是其他結構體。
結構體成員的訪問:結構體變數的成員是通過操作符(.)來訪問的。
有時候我們得到的不是乙個結構體,而是乙個結構體指標,那訪問如下:
結構體的自引用:
所以我們只能這樣定義:
struct node內的內容是列舉型別的可能取值,也叫做列舉常量。
預設從0 開始,依次遞增,當然在定義的時候,也可以賦初值
enum color{
red = 1;
green = 2;
blue = 3;
列舉的優點:
1、增加**的可讀性
和可維護性;
2、防止命名汙染(封裝);
3、便於除錯;
4、使用方便,一次可以定義多個常量
聯合體:
聯合體也是一種特殊的自定義成員,特徵是這些成員公用同一塊空間,所以聯合體也叫做公用體。
宣告: union un{
char c;
int i;
union un un;//定義乙個聯合體
聯合體的特點:聯合體的成員是公用一塊記憶體空間,乙個聯合體的大小至少是最大成員的大小。
限於編者水平,難免有不正之處,歡迎指正!
結構體 聯合體 列舉
1 結構體struct 結構體的作用 在網路協議 通訊控制 嵌入式系統的c c 程式設計中,我們要傳送的不是簡單的位元組流 char型陣列 二是多種資料組合起來的乙個整體,其表現形式是乙個結構體。使用struct的注意事項 1 下面看乙個題目 結果 6 12 這裡涉及到結構體的記憶體對齊方式。1 關...
結構體 聯合體 列舉
結構體 1.宣告乙個結構體型別的一般形式為 struct 結構體名 成員表列 如 struct student 表示可選項 注 宣告不是定義,故不可對成員列表中的成員進行初始化。定義別名 方法一 如 struct 結構體名 typedef struct 結構體名 別名 方法二 如 typedef s...
結構體,聯合體和列舉型別
一.結構體 結構體資料的存放 位段的缺點 不具有跨平台性 二.聯合體 三.列舉型別 若沒有位段 先找預設對齊數和每個數的較小值,再在這些較小值中找出最大的,即為最大對齊數.若上個對齊數開闢的空間還有冗餘可以放下下個數,就把下個數也放在這個空間內,如果不夠放下下個數,就把下個數放到下個空間內.當結構體...