C 基礎 (三)列舉 結構體 聯合體資料型別

2021-09-17 21:49:36 字數 1671 閱讀 2268

c++自定義的資料型別:列舉型別、結構型別、聯合型別、陣列型別、類型別。

c++的enum提供了一種建立符號常量的方式,可以代替const!

# 宣告形式

enum 列舉型別名字

for example:

enum weekday

;

對列舉量按照常量(const)處理,不能對它們賦值。比如sun=0是非法語句。

列舉型別可以在宣告時定義列舉量的值(必須是整數),如

enum weekday

;

定義sun為7,mon為1,以後順序+1,sat=6

列舉型別可以建立多個值相同的列舉量

enum

;

其中zeronull都為0,oneumero_uno都為1。

在c++早期版本中,只能將int值賦給列舉量,這種限制被取消了,現在可以使用long型別

列舉型別可以進行關係運算

可以通過 強制轉換 給列舉變數賦值,每個列舉都有取值範圍,通過強制型別轉換,可以將取值範圍中任何整數值賦給列舉變數。 比如:

enum bits

;bits myflag;

myflag=

bits(6

);

其中6不是列舉值,但是位於列舉定義的範圍之內。

賦值語句也可以寫成myflag=static_cast(6)

取值範圍,上限:比最大值大的2的冪,下限:比最小值小的2的冪(包括負數)

結構體是一種特殊形態的類,有自己的資料成員和函式成員,可以有自己的建構函式和析構函式,可以控制訪問許可權,可以繼承,包含多型等。

struct

;

struct point

point1,point2;

struct point

point=

;

struct

position;

struct torgle

;

用一般方法初始化

torgle tr=;

聯合體(union)是一種資料型別,能夠儲存不同的資料型別,但只能同時儲存其中的一種型別。聯合體是一種特殊形態的類,有自己的資料成員和函式成員,可以有自己的建構函式和析構函式,可以控制訪問權。與結構體一樣,從c繼承而來,預設訪問控制屬性為共有類。

聯合體的全部資料成員共享一組記憶體單元

語法格式:

union 聯合體名稱

;

union

i=10;f=

2.2;

struct student};

student daming,lili;

daming.id=

1232

;lili.id_char=

"xx44123"

;

結構體 聯合體 列舉

1 結構體struct 結構體的作用 在網路協議 通訊控制 嵌入式系統的c c 程式設計中,我們要傳送的不是簡單的位元組流 char型陣列 二是多種資料組合起來的乙個整體,其表現形式是乙個結構體。使用struct的注意事項 1 下面看乙個題目 結果 6 12 這裡涉及到結構體的記憶體對齊方式。1 關...

結構體 聯合體 列舉

結構體 1.宣告乙個結構體型別的一般形式為 struct 結構體名 成員表列 如 struct student 表示可選項 注 宣告不是定義,故不可對成員列表中的成員進行初始化。定義別名 方法一 如 struct 結構體名 typedef struct 結構體名 別名 方法二 如 typedef s...

C 結構體 聯合體

結構體是特殊形態的類,與類的區別 結構體的預設訪問許可權是public,也就是說當你建立資料成員的時候,預設是屬於public類,存在的主要原因 與c語言保持相容。結構體 struct 學生資訊 include include include using namespace std struct s...