自定義型別

2021-08-20 15:07:45 字數 1499 閱讀 4011

>結構體型別建立

結構體型別建立

結構體的宣告:

例:(描述乙個學生)

[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都是定義的列舉型別,中的內...