結構體、聯合體、枚舉
一、構造資料類型
1、數組 :
批量處理相同資料類型的一個資料結構
2、聯合
可以說是已經淘汰了,基本不用這種技術了
3、結構體:
處理不同資料類型的一個資料結構,結構體也是一段連續的記憶體空間(但是)由于成員變量的排列順序不同,可能造成有縫隙。(記憶體的對齊和補齊)。
體檢表:
姓名:黃永瑞 性别:男 出生日期:1990-1-1 照片:
家庭位址:深圳市龍崗區美夢家園
内科 血壓/脈搏
120/85 98
外科 身高 體重 視力/色弱
耳鼻喉
胸透X
B超
心電圖
3.1、結構體類型的變量一般格式
struct 結構體名稱
{
};
例子:struct Student
{
int no;//學号
char name[20];//姓名 =====>成員變量
char sex[10];//性别
double score;//成績
};
第一種
struct Student
{
int no;//學号
char name[20];//姓名 =====>成員變量
char sex[10];//性别
double score;//成績
}變量名,變量名1;
第二種
struct Student 變量名;
--------------------
整體看做一個資料類型
注意:結構體是一個資料類型,複合的資料類型,就是由很多個基本資料類型組成的一個大得資料類型。這樣的資料類型并不配置設定記憶體空間,隻有在建立一個結構體類型的變量時才配置設定記憶體空間,來存儲結構體中得成員變量。
3.2、結構體的嵌套
struct Student
{
int no;
char name[20];
int age;//年齡
struct Birthday
{
int y;
int m;
int d;
};
};
或
struct Birthday
{
int y;
int m;
int d;
};
struct Student
{
int no;
char name[20];
int age;//年齡
struct Birthday birth;//生日
};
3.2、結構體類型變量的初始化。
第一種
struct Student
{
int no;
char name[20];
}stu = {2013001,"銳哥"};
第二種
struct Student liang = {0};//不推薦
struct Student liang = {2014001,"亮哥"};
動态從鍵盤上去給成會員變量指派
點文法 " . "
結構體變量名.成員變量名;
如果是scanf()輸入 遇到基本資料類型中得數值資料以及字元類型的資料都要加 & 符号,否則錯誤,如果是字元串類型用scanf(),%s還要去掉 &符号,字元串結構本身就是位址。
指針運算符 ->
通路結構體變量的成員變量的方法。
3.3、結構體類型的指針
struct Student* p;
3.4、結構體類型的數組
每一個數組元素,其實是一個結構體類型的變量,每一個變量又是由多個不同資料類型的變量組成。
例子:我們可以借助結構體數組,儲存1406班每一個學生的資訊,學号 姓名 性别 年齡等。
一般格式: 結構體類型 數組名[];
struct Student stu[50];