2011-02-07 56 views

回答

8

問題是有些寬泛,但是...

一個結構是一骨料複合數據類型,用於表示由多個描述實體屬性可能不同的類型。一些示例:

  • 3-D空間中的點,由3個實值座標x,y和z表示;
  • 郵寄地址,由街道名稱,房屋或公寓號碼,城市,州,郵編代表;
  • 發票中的行項目,由零件名稱或編號,單位成本,數量和小計表示;
  • 樹中的一個節點,由一個鍵,數據值,左子節點和右子節點表示;

等等,等等,等等。

讓我們看一下郵件地址作爲一個具體的例子。

struct Address { 
    char *streetName; 
    int buildingNumber; // House, apt building, office building, etc.  
    char *aptNumber;  // Handles apt and suite #s like K103, B-2, etc. 
    char *city; 
    char state[3]; 
    int zip; 
}; 

我們希望創建一個結構的實例,像這樣:

struct Address newAddress; 

和一個指向該實例爲:

我們可以如下定義我們的郵寄地址類型

並使用.->運算符來訪問其每個字段,具體取決於我們是在處理結構實例還是指向結構的指針:

newAddress.streetName = strdup("Elm"); 
addrPtr->buildingNumber = 100; 
... 

另一種方式來看待結構是一樣的東西多領域組成的數據庫記錄

0

來自MSDN -

結構類型是用戶定義的複合類型。它由可以具有不同類型的字段或成員組成。

6

這是一個自定義內存佈局,帶有人類可讀的內存區域內偏移量的別名。

2

也許不是最簡單的解釋,但爲了完整性,下面是標準的不得不說的結構(C99 6.2.5§20):

結構類型描述 順序分配的非空集 成員對象(並且在某些 的情況下,一個不完整的數組), 其中每個具有可選的 指定的名稱和可能不同的 類型。

相關問題