42.構造型別
構造資料型別:陣列型別、結構體型別、共用體(聯合)型別。
43.結構體:「結構」是一種構造型別,它是由若干「成員」組成的。每乙個成員可以時乙個基本資料型別或者又是乙個構造型別。
結構體可以把功能相同的資料組織起來,存在一起,用的時候方便,而且在呼叫函式時,若傳遞引數較多,傳乙個結構體相對而言簡單一些,很多系統自帶的函式必須用結構體。
①定義:struct 結構名{成員表列};
定義結構體變數:struct 結構體名 結構體變數名;——> struct student stu1;
三種定義方法:
1)先定義結構體,然後再定義結構體變數; struct student; struct student stu1,stu2;
2)定義結構體的同時,定義結構體變數; struct studentstu1,stu2,stu3;
3)使用匿名結構體定義結構體變數;struct ; struct car1;
②結構體變數的訪問:
stu1.name stu1.*** //用變數名加.訪問
③結構體變數儲存原理:結構體占用的記憶體空間時每個成員占用的位元組數之和(考慮對齊問題)。
44.結構體陣列
①定義:1)定義結構體同時定義陣列:
struct stu陣列名[陣列長度];
2)先定義結構體,後定義陣列:
struct stu{};
struct boy[5];
②初始化:1)定義結構體的時候初始化:
struct studentboys[3]=,,};
2)定義的同時進行初始化:
struct student girls[2] = ,};
3)先定義後初始化,整體賦值:
struct student ds[2];
ds[0] = (struct student);
ds[1] = (struct student);
4)先定義結構體陣列,後初始化:
struct student stu[2];
strcpy(stu[0].name,"zhangsan"); //scanf("%s",stu[0].name);
stu[0].age=19;
45.結構體指標
乙個指標變數當用來指向乙個結構變數時,稱之為結構指標變數。結構指標變數中的值時所指向的結構變數的首位址。
①定義:struct 結構名 *結構指標變數名
struct stu *pstu; //定義了指標只能指向stu結構體型別的結構體變數
②使用:
struct
studentstu1;
struct
student
*pstu =
null;
pstu = &stu1;
(*pstu).
name
,(*pstu).
age)
pstu->
name
,pstu->
age
46.列舉型別
c語言提供了一種成為」列舉「的型別。在」列舉「型別的定義中列舉所有可能的取值,被說明為該」列舉「型別的變數取值不能超過定義的返回。
應該說明的是,列舉型別時一種基本資料型別,而不是一種構造型別,因為它不能再分解為任何基本型別。
①定義:
enum 列舉型別名 {列舉值表};
在列舉值表中應羅列出所有可用值。這些值也稱為列舉元素。
②列舉型別變數
1)先定義列舉型別,再定義列舉變數:
enum icolor;
enum icolor iphonecolor; //iphonecolor取值是有要求的,只能取列舉元素中的乙個
2)定義列舉型別的同時,定義變數:
enum icolor iphonecolor;
給列舉型別變數賦值:iphonecolor = blue;
列舉型別變數的值:列舉型別定義完成後,系統會自動給列舉的每個元素都會賦值乙個整型的初值
預設初值:從第乙個元素開始值為0,以後每個元素的值,是上乙個元素的值+1
也可以自己賦值:enum icolor;
構造型別及結構體
1 構造型別及結構體 a c語言構造型別 構造資料型別 構造資料型別是根據已定義的乙個或多個資料型別用構造的方法來定義的。也就是說,乙個構造型別的值可以分解成若干個 成員 或 元素 每個 成員 都是乙個基本資料型別或又是乙個構造型別。在c語言中,構造型別有以下幾種 陣列型別 結構體型別 共用體 聯合...
C語言構造型別之共用體與列舉
常用於 查詢 定義 關鍵字 union 共用體名 模擬結構體 關鍵字struct 結構體名 共用體的記憶體大小只和最大的元素大小有關 共用體大部分操作和結構體一樣 共用體依然可以使用位元組對齊和位域 pragma pack 1 union message 關鍵字enum 列舉名 列舉本質為正整數型別...
C語言構造型別總結(共用體)
共用體又叫聯合,因為它的關鍵字是union,它的使用不像列舉和結構體那麼頻繁,但是作為c語言中一種資料型別,我們也有必要弄清它的用法.從前面的分析,我們知道結構體的總長度等於所有成員的和 當然還可能遇到記憶體對齊問題 共用體剛好與結構體不同,共用體所有成員共用一塊記憶體 順序從低位址開始存放,一次只...