結構體定義的幾種常見方式
阿新 • • 發佈:2019-01-02
大家都知道若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;
因為也是學藝不精,若有出錯或是某些地方考慮不周有遺漏還望指出,感激不盡。