結構體與列舉

2022-01-25 03:55:34 字數 1279 閱讀 4261

但是轉念一想,別人寫的畢竟是別人寫的,那是別人的,雖然我能看懂,也能為我所用,但始終不是從自己腦子裡一點點想出來的,不是自己手指在鍵盤上乙個字乙個字的敲出來的。

所以儘管自己都知道了,但是還是自己寫出來,總結出來,才算真正自己的東西。

好了,下面來聊一下結構體是什麼吧。

1、首先它是乙個體。

既然是乙個體,裡面肯定有很多互相作用的小模組。就是這樣,結構體裡可以定義很多不同資料型別的模組,字串,陣列,指標,整型,浮點數等等。

定義了結構體,我們就可以定義結構體變數,用開引用結構體中的小模組。典型的例子就是學生資訊管理系統。

關於結構體的定義呢,我們還是採用常用的方式,用typedef來定義結構體,方便後面定義結構體變數。一定要養成良好的習慣啊。

typedef struct

man//定義了乙個結構體man

man;//結構體變數man

intmain()

;//對模組的引用

man man2 = ;

man man3 = ;

printf(

"%d\n

",man1.age);

printf(

"%d\n

",man3.score);

}

2、結構體中的「洞」

結構體中的每乙個模組在記憶體中並不是禁止排列儲存的,而是上下對齊儲存。這種現象叫做記憶體對齊。這樣做的目的是為了是處理器能夠更快速的進行定址,執行速度更快。以空間換取時間。

看來魚與熊掌還是不能兼得啊。既然是上下對齊的,那麼並不是每個模組都能準確的填滿一行的記憶體空間。那麼沒有被填滿的記憶體空間就造成了空洞。

這樣的話,在檢視結構體所佔的空間時,就不能把每個模組所分別佔的記憶體空間簡單的相加。因為他們中間存在空洞。

3、在c語言中文網裡面對結構體進行了詳細的講解:

包括結構體陣列,結構體指標。

4、列舉

在實際程式設計中,有些資料的取值往往是有限的,只能是非常少量的整數,並且最好為每個值都取乙個名字,以方便在後續**中使用,

比如乙個星期只有七天,一年只有十二個月,乙個班每週有六門課程等。這種情況下,使用列舉很有用的。

#include int

main()

;//第乙個賦值後,後面每乙個一次+1

enum week day;//

也可以直接在上面大括號後面加 day

scanf("%d

", &day);

switch

(day)

return0;

}

列舉與結構體

1 結構體和列舉一樣,都是在 的主體外部宣告的。1 using system 2using system.collections.generic 3using system.linq 4using system.text 56 namespace structenum 7 15 struct rou...

結構體 共用體與列舉

part 1 一 結構體型別與程式設計應用 學生的記錄由學號和成績組成。n名學生的資料已在主函式中放入結構體陣列stu中。編寫函式 ndminlist,實現 把分數低的學生資料放在陣列t中,函式返回分數低的學生的人數。注意 分數低的學生可能不止乙個 include const int n 5 定義結...

結構體列舉與聯合

基本介紹 struct是結構體的關鍵字,它將一些相關聯的資料打包成乙個整體,這些相關聯的資料可以是不同的型別。它們被稱為結構體的成員,結構體的成員可以是標量 陣列 指標 或者是其他結構體。結構的宣告 假設我們要建立學生檔案,要納入學生的姓名,年齡和性別三個內容。那麼我們可以通過建立乙個結構體來實現這...