c語言 資料型別 構造型別

2021-06-28 14:27:29 字數 873 閱讀 6186

利用計算機存處理單一的資料是比較容易,比如乙個人的某一科成績,直接建立乙個變數儲存相應的分數就可以了,但是要同時處理多個科目的時候,這時候就有點麻煩了,同時建立多個變數儲存多個科目這樣子顯得有點奇怪不是麼?假設乙個人有5個科目的成績要儲存,乙個班50個人就得要有250個變數來儲存分數,光乙個班級就得用掉這麼多個變數,變數一多起來的話就很容易變數名字衝突了,而且這樣索引起來也是有點麻煩的,再說這樣也不能很好的表示各個變數之間的結構關係。於是資料構造型別就出現了。

在c語言的資料型別中,構造型別是由基本型別構成的,最基本的構造型別就是陣列,陣列是由同一種數值型別組成的,好比說有位同學的分數這樣表示scores = [56,54,43,35,60],然後再用另乙個變數表示科目subject = [『數學』,「語文」,「英語」,「物理」,「歷史」],(在c語法中,用兩個框一左一後把資料框起來,用來表示陣列,並且各種不同的陣列用逗號隔開,被分號包圍的是字串,並且這些符號必須是西文輸入的,也就是用英文輸入法輸進來的),這樣一一對應的話不就表示出了對應科目的成績了嗎。陣列就是同一種資料型別元素組成的,元素之間用下標區分開來,比較複雜的是,下標是以0開始數的,這點剛開始很難適應。

其實用陣列還不是特別好的表示名字,科目,分數之間的關係,因為在這裡人的名字的層次是在科目和分數之上的,用陣列就要用兩次名字。於是人們用結構體把科目、分數打包起來。然後再給結構體命名字,這樣子結構層次就很明顯了(其實在別的高階語言中用字典更合適)。結構體不僅可以包含陣列,還可以包含基本型別的變數。

還有一種是共用體,與結構體類似。多個不同變數使用同乙個結構體,並且各變數均可以使用、修改結構體的資料,這就好像那位同學有多個名字,但是無論名字怎麼變,都是那些分數。

C語言構造型別總結(共用體)

共用體又叫聯合,因為它的關鍵字是union,它的使用不像列舉和結構體那麼頻繁,但是作為c語言中一種資料型別,我們也有必要弄清它的用法.從前面的分析,我們知道結構體的總長度等於所有成員的和 當然還可能遇到記憶體對齊問題 共用體剛好與結構體不同,共用體所有成員共用一塊記憶體 順序從低位址開始存放,一次只...

c語言構造資料型別

1.typedef 給老的資料型別取別名 可以簡寫複雜的資料型別 typedef unsigned int ui typedef int pint pint是個型別,int 的新名字 typedef int pfunc int int pfunc是個型別,表示函式指標型別 int add int a...

語言 構造型別(結構體 列舉)

42.構造型別 構造資料型別 陣列型別 結構體型別 共用體 聯合 型別。43.結構體 結構 是一種構造型別,它是由若干 成員 組成的。每乙個成員可以時乙個基本資料型別或者又是乙個構造型別。結構體可以把功能相同的資料組織起來,存在一起,用的時候方便,而且在呼叫函式時,若傳遞引數較多,傳乙個結構體相對而...