一、結構體
多個相同型別的資料構成的集合叫做陣列,多個不同型別的資料構成的集合叫做結構體。
結構體型別的作用域:
① 定義在函式外面:全域性有效(從定義型別的那行開始,一直到檔案結尾)
② 定義在函式(**塊)內部:區域性有效(從定義型別的那行開始,一直到**塊結束)
1、結構體的定義
struct是關鍵字,是結構體型別的標誌
1struct
結構體名;
2、結構體變數的定義
① 先定義結構體型別,再定義結構體變數
1struct
student ;56
struct student stu;
② 定義結構體的同時定義變數
1struct
student stu;
③ 定義結構體變數,省略型別名
1struct
stu;
2、注意事項
① 結構體內可以包含別的結構體
1struct
date ;67
struct
student ;
② 只有定義屬於結構體型別的變數時,系統才會分配儲存空間給變數
1struct
student ;56
struct student stu;
③ 結構體變數占用的記憶體空間是其成員所佔記憶體之和
3、結構體的初始化
對各成員初始化,一一對應賦值
1struct
student ;56
struct student stu = ;
4、 結構體的使用
① 對結構體變數的操作是以成員為單位進行,格式:結構體變數名.成員名
1//訪問stu的age成員
2 stu.age = 22;
② 相同型別的結構體變數之間可以進行整體賦值
1//將stu1直接賦值給stu2
2struct student stu2 = stu1;
5、結構體陣列
結構體陣列的定義和普通結構體類似。
1//結構體陣列初始化
2struct
stu[2] = , };
6、 結構體指標
① 指向結構體的指標的定義
struct student *p;
② 利用指標訪問結構體的成員
1 (*p).成員名稱23 p->成員名稱
7、結構體與函式
① 如果結構體作為函式引數,只是將實參結構體所有成員的值對應地賦值給了形參結構體的所有成員
② 修改函式內部結構體的成員不會影響外面的實參結構體
1struct
student2;
67//修改函式內部結構體的成員不會影響外面的實參結構體
8void dfy(struct
student s)913
14//
會影響外面的實參結構體
15void dfy2(struct student *p)
16
二、列舉型別
1、定義列舉型別
1//1.定義列舉型別
2enum
season3;
910
2、定義列舉變數
12//定義列舉變數
3enum season s = 100000;
3、遍歷列舉元素操作
enumseason s;
//遍歷列舉元素
for (s = spring; s <= winter; s++)
三、 變數型別(根據作用域範圍的不同可以分為全域性變數和區域性變數)
1、全域性變數
① 定義:在函式外面定義的變數
② 作用域:從定義變數的那一行開始,一直到檔案結尾(能被後面的所有函式共享)
③ 生命週期:程式一啟動就會分配儲存空間,程式退出時才會被銷毀
④ 預設的初始值就是0
2、區域性變數
① 定義:在函式(**塊)內部定義的變數(包括函式的形參)
② 作用域:從定義變數的那一行開始,一直到**塊結束
③ 生命週期:從定義變數的那一行開始分配儲存空間,**塊結束後,就會被**
④ 沒有固定的初始值
1 #include 23int age;//
全域性變數45
void
bianliang()610
11int
main()
12
c語言中結構體型別變數型別,結構體變數名賦值
結構體的詳情參考本文件 這幾天看圖用領接表儲存圖時候,開始實現的時候發現對結構體的變數名賦值有些疑惑,疑惑的地方查了下,留做備份 此宣告宣告了擁有3個成員的結構體,分別為整型的a,字元型的b和雙精度的c 同時又宣告了結構體變數s1 這個結構體並沒有標明其標籤 struct s1 此宣告宣告了擁有3個...
C 列舉型別和結構體
注意 列舉型別和結構體都屬於值型別。結構體 就是乙個自定義的集合,裡面可以放各種型別的元素,用法大體跟集合一樣。一 定義的方法 struct student public int nianling public int fenshu public string name public string ...
C結構體與列舉型別
struct 結構體標籤 結構體變數 include include struct user leader 3 int main int argc,char args return 0 通過.號進行成員訪問,若通過指標指向結構體,訪問為 p attr 或者是p attr,同理可得 include i...