1. 程式人生 > >結構體定義的幾種常見方式

結構體定義的幾種常見方式

大家都知道若struct後面接的是名字,則其為該結構體的名稱。

下面給出六種結構體定義,其中第一種是最基本的結構體定義,其定義了一個結構體A。

struct A            //第一種
{
    int a;
};

第二種則是在定義了一個結構體B的同時定義了一個結構體B的變數m。

struct B            //第二種
{
    int b;
}m;

第三種結構體定義沒有給出該結構體的名稱,但是定義了一個該結構體的變數n,也就是說,若是想要在別處定義該結構體的變數是不行的,只有變數n這種在定義結構體的同時定義變數才行。

struct              //第三種
{ int c; }n;

第四種結構體定義在第一種結構定義的基礎上加了關鍵字typedef,此時我們將struct D{int d}看成是一個數據型別,但是因為並沒有給出別名,直接用D定義變數是不行的。如D test;,不能直接這樣定義變數test。但struct D test;可行。

typedef struct D    //第四種
{
    int d;
};

第五種結構體定義在第四種結構體定義的基礎上加上了別名x,此時像在第四種結構體定義中說得那樣,此時的結構體E有別名x,故可以用x定義E的結構體變數。用E不能直接定義,需要在前面加struct,如struct E test;。

typedef struct E    //第五種
{
    int e;
}x;

第六種結構體定義在第五種的基礎上減去了結構體名,但是若是直接使用y來定義該結構體型別的變數也是可以的。如y test;。

typedef struct      //第六種
{
    int f;
}y;

因為也是學藝不精,若有出錯或是某些地方考慮不周有遺漏還望指出,感激不盡。