c/c++的基本資料型別:char/short/float/double 陣列,指標
將基本的資料型別組合起來,形成新的資料型別 「
自定義型別」
例如:定義乙個新型別 student,成員變數有 name id grade
struct student
;
結構體基本形式
基本形式: 其中,struct是關鍵字,typename為新型別的名稱,members是一系列成員變數。
struct typename
;
結構體使用
定義乙個變數student c;
定義陣列:student cs[4];
指標:student* pc = &c ;
作為函式引數(傳值,傳址):void test(student c);
,void test(student* p);
作為返回值型別:student make(int id);
結構體變數定義和初始化
定義乙個變數(不給初始值)
student a;
定義時初始化:用大括號將各個成員的初始值列出,按順序列表。注意初始化時用大括號,末尾加分號結束。各字段的初始值要與該字段型別匹配。各初始值用逗號隔開,按順序初始化。可以只初始化部分成員變數,也可以直接清0;結構體變數可以互相賦值,只支援 = ,不支援其他運算。
student a =
;student a =
;student a =
;student as =.,
}student b = a;
結構體變數的訪問
使用點號訪問其成員:
student a;
a.id =
201867
;strcpy
(a.name,
"dfs"
);
指標
使用箭頭 ->訪問各成員變數,專門的這種方法,也可以用(*p).id
,不常用。
student a =
student* p =
&a;printf
("id:%d,grade:%d.name:%s \n"
,p->id,p-
>grade,p-
>name)
;
匿名struct
只定義變數,不定義型別(只想定義乙個變數),該struct沒有命名,編譯器內部會分配乙個名字,我們不知道
struct
info;
結構體定義的幾種方法
最前面的最常用正規,下面避免,匿名也避免
《C C 學習指南》語法篇 筆記 (六 語句)
if else 條件判斷 if exper statement1 符合語句帶大括號 else statement2 switch case 條件判斷 ecpr 表示式,其值必須是整型 option 常量,必須是整型 default 預設標籤 break 跳出復合語句,switch語句是直接跳到opt...
《C C 學習指南》語法篇 筆記 (十一 鍊錶)
鍊錶概念 資料結構裡的一種型別 把若干個物件用指標串聯起來,形成乙個鏈狀的資料結構,稱之為 鍊錶 struct student 下面構建乙個鍊錶 先準備好四個物件 student ss 4 把四個物件串起來 ss 0 next ss 1 ss 1 next ss 2 ss 2 next ss 3 s...
C C 學習筆記24 結構體與共用體
結構體 結構體的引出是相對於陣列而言的,陣列要求陣列中的各個元素屬於同乙個型別,那麼有這些還不夠,有時候還需要將不同型別的資料組合成乙個有機的整體,以便於引用。於是c語言允許使用者指定這樣一種資料結構,它稱之為結構體。關於結構體的問題,做如下說明 宣告乙個結構體型別 struct studentst...