自定義型別 結構體,列舉,聯合體

2021-08-11 08:39:12 字數 1261 閱讀 3649

自定義型別:結構體,列舉,聯合體

結構體

結構體是一些值的集合,這些值成為成員變數,結構體的每乙個成員都可以是不同型別的變數。

結構體的宣告:

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...

結構體,聯合體和列舉型別

一.結構體 結構體資料的存放 位段的缺點 不具有跨平台性 二.聯合體 三.列舉型別 若沒有位段 先找預設對齊數和每個數的較小值,再在這些較小值中找出最大的,即為最大對齊數.若上個對齊數開闢的空間還有冗餘可以放下下個數,就把下個數也放在這個空間內,如果不夠放下下個數,就把下個數放到下個空間內.當結構體...