求職寶典 第三章 結構體 共用體 與列舉

2021-07-10 22:12:47 字數 2241 閱讀 2379

1.結構體

struct

結構體與陣列的不同:

1)結構體可以在乙個結構中宣告不同的型別,陣列做不到

2)相同結構的結構體是可以相互賦值的,陣列做不到

c++的

class

與struct

的區別:

class的成員訪問許可權預設為

private

,而struct

的成員訪問許可權預設為

public

結構體的定義

結構體型別變數的定義一般形式為:

struct 結構體型別名 ;

在結構體定義時要注意以下幾點:

1)結構體結構體型別定義中不允許對結構體本身遞迴定義,但可以使用指標指向本結構體。

2)結構體定義中可以包含另外的結構體,即結構體是可以巢狀的。

3)結構體變數可以在定義時進行初始化賦值。

結構體中的位欄位  略

2. 共用體

union

結構體和公用體(聯合)都是由多個不同的資料成員組成,但在任何同一時刻,共用體中只存放了乙個被選中的成員,而結構體的所有成員都存在,對公用體的不同成員賦值,將會對其它成員重寫,原來成員的值就不存在了,而對於結構體的不同成員賦值是互不影響的。

union 公用體名

變數名;

共用體占用記憶體為各大成員中占用最大者的記憶體。

3.列舉

列舉是一種使用者自定義型別,定義的基本格式為:

enum 列舉型別名

[變數名列表]

花括號中的內容稱為列舉表,其中的每一項稱為列舉常量,換言之,列舉表是列舉常量的集合。列舉表中每項後的「=

整形常數」是給列舉變數賦初值,用方括號代表這步可以省略,如果不給列舉常量賦初值,編譯器會為每乙個列舉常量賦乙個不同的整數值,第乙個為

0。當列舉表中某個常量賦初值後,其後的成員則按依次加一的規則確定其值。

4.sizeof運算子

使用方法

1)用於變數

sizeof的使用形式:

sizeof(var_name)

或 sizeof var_name

變數名可以不用括號括住,但是帶括號的用法更加普遍。

2)用於資料型別

sizeof的使用形式:

sizeof(type)

資料型別必須用括號括住

sizeof 結果

sizeof操作符的結果是

size_t ,

它被定義為

unsigned_int

型別,該型別保證能容納實現所建立的最大物件的位元組大小。

3)與strlen()比較

sizeof計算資料(包括陣列、變數、型別、結構體等)所佔記憶體空間,用位元組數表示,故將內容與』\0』的陣列元素計算在內。而strlen

計算字元陣列的字元數,以』\0』為結束標誌,且不講』\0』計算在字元內。

4)指標、引用、漢字及陣列的

sizeof 操作

指標可以視為變數的一種,在32

位機器系統下,所有指標變數的

sizeof

操作結果均為

4,若在

64位機器系統下,所有指標變數的

sizeof

操作結果均為8

所有引用變數的sizeof

,等同於被引用物件的

sizeof。

對於c字串,需要牢記

c/c++

中乙個漢字僅佔兩個位元組,且字串末尾有乙個空字元。

對於陣列,sizeof

可直接計算陣列大小。

5)struct 的空間計算

struct的空間計算較為複雜,總體上遵循兩個原則

第乙個原則是:整體空間是占用空間最大的成員(的型別)所佔位元組數的整數倍,但在32

位linux + gcc

環境下,若最大成員型別所佔位元組數超過

4,則整體空間是

4的倍數即可。

第二個原則是:資料對齊原則------

記憶體按結構體成員的先後順序排列,當排到該成員變數時,其前面已擺放的成員大小必須是該成員型別大小的整數倍,如果不夠則補齊,依次向後類推,但在

linux+gcc

環境下,若某成員型別所佔的位元組數超過4,如

double是8

,則前面已擺放的空間大小是

4 的倍數即可。

HCIA Storage 第三章ICT架構體系

1.資料與資訊 資料的定義 資料的定義是 資料是對所有 事物的數字表示。1.1資料與元資料的區別 以塊形式儲存是目前最常用的一種資料儲存方式,我們在進行資料儲存時,使用的是元資料加資料的形式 元資料相當於是資料的乙個摘要資訊,儲存著檔案的屬性 長度 儲存位置 型別等資訊,類似於字典中的索引和正文的關...

c 寶典 第三章 學習

1 c 禁止使用未賦值的變數,系統會給出預設值,變數的預設值大多是0,布林值為false.給變數賦值 myvariable 123 或者 int myvariable 123 注意 變數的 單詞首字母 大寫,每個節自建都有空格,最後分號結束。2 陣列,array 是一些相鄰的記憶體位元組,可以使用索...

第三章 結構表

線性表 零個或多個相同特性的資料元素的有限序列。首先它是乙個序列,元素之間是有順序 的,第乙個元素無前驅,最後乙個元素無後繼,其他的都有且只有乙個前驅和後繼。而所有元素按這種1對1的鄰接關係構成的整體就是線性表。線性表的儲存結構 線性表有順序表和鏈式兩類儲存結 構 一 順序表 順序表就是把線性表中的...