目錄
一、結構體的引入
二、結構體的定義以及初始化
1、結構體的定義
2、結構體變數的初始化。
三、結構體內元素的訪問
1、用結構體變數名
2、用結構體指標
四、結構體型別的大小
五、共用體
1、共用體的定義
2、共用體常用舉例
六、公用體的大小
七、列舉
現實生活中有很多變數需要描述,例如乙個人的資訊
姓名:char name[20];
性別:char ***;
年齡:int age;
當需要描述很多人的資訊的時候,就顯得非常麻煩。這樣c語言就引入了結構體的概念。
結構體是不同資料型別變數的集合。
三種方法:
1)
struct tag
; //定義結構體型別
struct tag people; //定義結構體變數
先定義結構體型別,再用型別定義變數。最常用的方法。
2)struct tag
people;
struct tag people2;
//定義型別的同時定義乙個變數,還可以用來定義其他變數。
3)struct
people;
這種方法只能在定義型別的時候定義變數。
用大括號,給對應的元素賦值。
struct tag
people = ;
struct tag people2 = ;
結構體變數名.元素
指標變數名->元素
兩種方法訪問到的結果是一樣的。
#include struct tag
people = ;
struct tag people2 = ;
int main()
,,};
int i;
p = &people2;
printf("姓名:%-10s性別:%-5c年齡:%-5d\n",people.name,people.***,people.age);
printf("姓名:%-10s性別:%-5c年齡:%-5d\n",p->name,p->***,p->age);
for(i=0;i<3;i++)
printf("姓名:%-10s性別:%-5c年齡:%-5d\n",student[i].name,student[i].***,student[i].age);
return 0;
}
1、每次開闢記憶體的大小都為最大的資料型別大小。
2、從上往下儲存。
struct tag
;
擁有1、2時大小為 8
擁有 2、3時大小為 12
擁有1 、2 、3時大小為 16
可以理解為一種特殊的結構體,裡面同樣可以儲存不同的資料型別,但是不同的資料型別占用同一記憶體空間。
常用的定義格式:
union 共用體名
;union 共用體名 共用體變數名;
把乙個整形資料拆分為4個字元型資料。
#include union tag
;int main()
1、大小為最大資料型別的整數倍。
2、能儲存最大的變數。
把變數可能出現的值一一枚舉出來,相當於乙個常量的集合。
格式:enum 列舉名;
從零開始一起學C語言(九) 資料結構
目錄 一 資料結構的介紹 1 資料結構 2 資料結構的儲存方式 二 記憶體的動態開闢和釋放 1 記憶體的動態開闢 2 記憶體的動態釋放 三 鍊錶的建立 1 煉表頭的建立 四 鍊錶的讀和寫 1 建立任意數量的節點 2 鍊錶的寫 3 鍊錶的讀 五 鍊錶的插入 1 頭插法 2 尾插法 六 鍊錶的刪除 相互...
從零開始一起學stm32(六) RTC
定時器 時間基準 計數器 時鐘日曆 2016 7 14 14 40 30 後備區作用 在系統復位或從待機模式喚醒後,rtc的設定和時間維持不變。完整步驟 設定暫存器rcc apb1enr的pwren和bkpen位,使能電源和後備介面時鐘 設定暫存器pwr cr的dbp位,使能對後備暫存器和rtc的訪...
從零開始一起學C語言(八) 編譯預處理
目錄 一 編譯預處理 1 作用 2 包含標頭檔案 3 巨集定義 4 條件編譯 二 位運算 1 位運算子 2 寫1和寫0 三 32個關鍵字 四 模組化程式設計 以 開頭的命令,為編譯做準備工作,篩選出需要編譯的 include 從系統指定的目錄尋找指定的stdio.件。include stdio.h ...