>結構體型別建立
結構體型別建立
結構體的宣告:
例:(描述乙個學生)
[html]
view plain
copy
struct stu
;//分號不能丟
結構體的成員可以是標量、陣列、指標,甚至可以使其他結構體。
>結構體初始化
//1.定義的同時初始化
struct
person p
1= ;
//2.先定義再逐個初始化
struct
person p
2;
p2.name
= "ykd"
; p2
.age= 1
8;
p2.heigth= 1
80; //3.先定義再一次性初始化
struct
person p
3;
p3= (
struct
person);
//注意:結構體和陣列在這裡的區別,陣列不能先定義再進行一次性初始化
//結構體要明確的告訴系統{}中是乙個結構體
//4.指定將資料賦值給指定的屬性
struct
person p
4= ;
>結構體內存對齊
>位段,位段計算機大小。
(表示佔幾個位元位)
>列舉+聯合。
列舉:列舉,將可能的取值一一例舉。
[html]
view plain
copy
enum day;
enum day是列舉型別。{}中的內容是列舉型別的可能取值(列舉常量)。
這些可能取值都是有值的,預設從0開始,一次增1,當然在定義的時候也可以賦初值,後邊一次增1。列舉變數被賦值為列舉常量內的某乙個,也可以是其他整數。
聯合(共用體)
共享記憶體
聯合型別的定義:聯合是一種特殊的自定義型別,這種型別定義的變數也包含一系列的成員,特徵是這些成員共用同一塊空間(所以聯合也稱為共用體)
例如:[html]
view plain
copy
//聯合型別的宣告
union un
; //聯合變數的定義
union un un;
//計算聯合變數的大小
printf("%d\n『,sizeof(un));
聯合的特點:
聯合的成員是共用一段記憶體空間的,這樣乙個聯合變數的大小,至少是最大成員的大小。
聯合體內的所有成員均以從第乙個位元組處開始使用
聯合大小的計算:
1.聯合的大小至少是最大成員的大小
2.當最大成員的大小不是最大對齊數的整數倍的時候,就要對齊到最大對其數的整數倍
自定義型別
typedef型別 typedef 已有型別 新建型別 示例 typedef double area,volume typedef int number number i1 area a enum enum 列舉型別名 enum week 預設sun 0,可以比較 如果修改必須形如enum week...
自定義型別
下面列舉幾種c語言中常用的自定義資料型別 1.結構體型別 當描述乙個整型變數時,可以用int,描述字元型變數時,可以用char,但要描述乙個學生時,因為這個學生包含的資訊很多,比如姓名,性別,年齡等,不能通過單一的型別來描述,所以,這裡引入結構體型別,將某個事物的共有屬性集合在一起,宣告乙個結構體型...
自定義型別
列舉從字面意思理解就是將可能取的值一一枚舉出來,列舉型別沒有成員 可言,裡邊存放的是可能取值。列舉型別的定義 enum day enum color printf d n red printf d n green printf d n blue 執行結果 day和color都是定義的列舉型別,中的內...