在習慣複製貼上之後導致現在自己敲程式都成了問題。。。鏈結構體都不會敲了,於是痛定思痛,寫下這篇筆記,警示後(zi)人(ji)。
定義:
struct 結構體名
; //一定要有分號,定義本身就是個語句的說
例子:
struct boo //定義名字是boo的結構體(和定義出一種新的型別差不多)
;
上面這樣就定義出了個結構體,相當於是個模板,要使用的話還要定義出乙個結構體變數:
struct boo boo2; //定義了乙個boo2結構體變數
後面使用的時候就用這個boo2
的變數,例如:
boo.bar = 233;
boo.car = 'helloworld';
如果有多個結構體巢狀的話要寫到最小的單位才能夠賦值,例如cl.dl.poi = 23;
,這裡的結構是:
struct bill
dl;struct pill
cl;
然後輸出的時候也要注意要寫到最小的單位才可以輸出:
void main (void)
另一種定義方法,這種在定義結構體的時候順手定義結構體變數:
struct 結構體名
結構變數; //一定要有分號,定義本身就是個語句的說
上面這兩種方法可以用定義好的結構體名來定義新的結構體變數,例如:
struct boo //定義名字是boo的結構體(和定義出一種新的型別差不多)
boo0; //順手定義boo0結構體變數
其實上面這句就相當於經常用的int i
,int
就是struct boo
,i
就是boo0
。
然後在後面可以這樣做來再另外定義一些結構體變數:
struct boo boo233;
前面的struct boo
就差不多是你新定義的型別名字,如果像下面那樣加上typedef
來使用會更加方便一丟丟。
配合typedef
食用:
typedef
struct
boo;
然後就可以直接這樣用:
boo boo233; //定義乙個用boo「結構」的結構體變數boo233
其實就是和微控制器裡面的這個差不多
typedef
unsigned
int uint8
上面這句就是給unsigned int
起個uint8
的暱稱,這樣呼叫的時候就可以直接用uint8
代替那一長串字元(還可以顯得和這個型別特別熟,關係特別近)。
還可以加上結構體名字:
typedef
struct barr
boo;
這樣就除了可以用boo boo233;
來定義新的結構體變數外還可以用回
struct barr boo344;
來定義結構體變數。
注意(敲黑板):
結構體相當於模板,本身不佔據記憶體空間,結構體變數才佔記憶體空間(也就是說實際上真正建立和使用的是結構體變數,而不是結構體本身)。
參考了這些文章:
c 結構體 struct 詳解
結構體定義 typedef struct 用法詳解和用法小結
C語言筆記 結構體
第一種 只對結構體進行宣告 struct 結構體名 struct student 第二種 在宣告型別時同時定義變數 struct 結構體名字 變數名列表 struct student student1,student2 第三種 不指定型別名直接定義結構體型別變數 struct 變數名列表 struc...
C語言筆記 結構體
struct mystruct 結構體名 注意一定要加 這是基本格式,其餘的見 筆記 define crt secure no warnings include include struct student 結構體型別宣告,注意最後一定要加分號 intmain 結構體變數 列印要乙個乙個來 prin...
c語言 結構體學習筆記
一般形式 struct 結構體名 示例struct student 注意最後的分號2.1.先宣告結構體型別,再定義該型別的變數示例 struct student student1,student2 2.2.在宣告型別的同時定義變數 一般形式 struct 結構體名變數名表列 示例struct stu...