結構體

結構體聲明
結構體定義
結構體應用
結構體與數組
結構體也屬於構造類型。結構體比數組更加靈活,可以存放不同類型的變量
結構體是由若干成員組成的,成員既可以是基本數據類型,又可以是構造類型,比如數組。
結構體屬於自定義數據類型
1.結構體聲明
struct 結構體名

  類型說明符  成員名;
  …; 
  類型說明符  成員名;
};//注意此處分號不能少
結構體是自定義類型,結構體變量是由結構體類型修飾的變量。
定義結構體變量
struct  結構體名 變量名 ={初值};
結構體成員訪問
結構體成員的表示形式
結構體變量 .成員
typedef爲現有的類型創建一個新的名字,或成爲類型別名,
typedef 原類型 新類型
typedef int  Integer
這樣 int a =10;
可以寫成 Integer a = 10;
結構體變量可以直接賦值。
注意
雖然數組和結構體都屬於構造類型,但是結構體變量能直接賦值數組不能直接賦值。
小技巧:
可以通過把數組放在結構體內實現數組的直接賦值。
結構體內存佔用
結構體所佔的空間可以簡單的認爲是各個成員所佔內存的空間之和。
實際上是最大成員變量所佔空間的最小整數倍。
當數組這種構造類型的數據整體所佔的字節數大於結構體成員變量中最大的數據類型所佔的字節數時,數組就會拆分對齊。
計算機中內存對齊原則的本質就是爲了cpu能夠高效的通過地址訪問相關內存。
結構體嵌套
結構體的成員仍然可以是結構體。
結構體數組
可以將多個結構體變量放到數組中,構成結構體數組。
例如:struct stu students[10]
可以通過下標可以訪問每個結構體變量。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章