《C C 學習指南》語法篇 筆記 (十 結構體)

2021-10-08 19:56:00 字數 1467 閱讀 7267

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...