當前位置:編程學習大全網 - 編程語言 - 結構體c語言是什麽?

結構體c語言是什麽?

在C語言中,結構體(struct)指的是壹種數據結構,是C語言中復合數據類型(aggregate data type)的壹類。

結構體可以被聲明為變量、指針或數組等,用以實現較復雜的數據結構。結構體同時也是壹些元素的集合,這些元素稱為結構體的成員(member),且這些成員可以為不同的類型,成員壹般用名字訪問。

壹、成員訪問

結構體成員依據結構體變量類型的不同,壹般有2種訪問方式,壹種為直接訪問,壹種為間接訪問。直接訪問應用於普通的結構體變量,間接訪問應用於指向結構體變量的指針。

直接訪問使用結構體變量名.成員名,間接訪問使用(*結構體指針名).成員名或者使用結構體指針名->成員名。相同的成員名稱依靠不同的變量前綴區分。

二、變量存儲

在內存中,編譯器按照成員列表順序分別為每個結構體變量成員分配內存,當存儲過程中需要滿足邊界對齊的要求時,編譯器會在成員之間留下額外的內存空間。

如果想確認結構體占多少存儲空間,則使用關鍵字sizeof,如果想得知結構體的某個特定成員在結構體的位置,則使用offsetof宏(定義於stddef.h)。

匿名struct

匿名struct、匿名union以及C++的匿名class,是指既沒有類型名,也沒有直接用這種類型定義了對象;如果緊隨類型定義之後,又定義了該類型的對象,就不算是匿名類型,與普通情形的使用是壹樣的。

匿名類型作為嵌套定義,即在壹個外部類(這裏的類是指struct、union、class)的內部定義,則編譯器就在匿名類型定義之後定義壹個無名變量,並把該匿名類型的數據成員的名字提升到匿名類的外部類的作用域內。

如果匿名類型是連續嵌套,則最內部的匿名類型的成員名字被提升到最外部的可用變量名字訪問的類的作用域內。

  • 上一篇:Delphi基礎教程:DELPHI圖像編程(1) [3]
  • 下一篇:高級web前端開發工程師的基本職責
  • copyright 2024編程學習大全網