C中幾種相對不常用型別 結構體

2021-04-12 12:26:50 字數 1255 閱讀 4506

結構體定義方法

struct person

;變數定義方法

方法1:

struct person

;struct person jim;    //定義時,前面要加struct

方法2:

struct person

jim;           //可以在結構體定義時,同時進行變數定義

以這種方法定義時,可以使用無名結構體如下:

struct

jim; 

這樣,只能定義乙個結構體變數jim。下面再需要時就無法定義了。

變數引用方法

一般結構體,jim.age

結構體指標,jim->age

要注意對其中指標變數的操作,比如name: 

struct person *tom;

strcpy(tom->name, "yfpeng");

而不能用 tom->name = "yfpeng";

結構體陣列

struct person

key[3]; 

key[0].age = 80;

與普通陣列的使用相同。

結構體指標

struct person

*tom; 

結構體指標同其它指標變數一樣,要經過初始化。

tom = (struct person *)malloc(sizeof(struct person));

前面已經說過結構體指標,引用內部變數用->,其實這個符號的作用如下:

tom->age = 20;

(*tom).age = 20;

是乙個取值操作,為了方便而引入了 ->

結構體的大小

sizeof(struct person)

理論上應該等於結構體內各變數加起來的大小之和。但由於記憶體儲存方式的原因,往往得到的結果與理論不符。

結合typedef定義結構體為乙個新型別

typedef struct person

tom;

這樣,tom被定義為乙個新型別,其實就是struct person。這種情況下,可以使用無名結構體,不用指明person了。使用方法如下:

tom t;

t.age = 80; 

c 中的結構體型別

struct 型別是一種值型別,通常用來封裝小型相關變數組,例如,矩形的座標或庫存商品的特徵。下面的示例顯示了乙個簡單的結構宣告。public struct postaladdress 結構與類共享幾乎所有相同的語法,但結構比類受到的限制更多 儘管結構的靜態字段可以初始化,結構例項字段宣告還是不能使...

C 結構體型別和類型別

當我們需要定義一些需要定義一些型別的時候,需要用到一些欄位和屬性的集合,有人會用類型別。也有人會用結構體型別。結構和類的區別 1 結構是值型別,它在棧中分配空間 而類是引用型別,它在堆中分配空間,棧中儲存的只是引用。2 結構型別直接儲存成員資料,讓其他類的資料位於對中,位於棧中的變數儲存的是指向堆中...

C 列舉型別和結構體

注意 列舉型別和結構體都屬於值型別。結構體 就是乙個自定義的集合,裡面可以放各種型別的元素,用法大體跟集合一樣。一 定義的方法 struct student public int nianling public int fenshu public string name public string ...