c語言之結構體

2021-10-03 17:26:09 字數 1655 閱讀 9372

結構體

為什麼需要結構體

為了表示一些複雜的事物,而普通的基本型別無 法滿足實際需求。

什麼叫結構體

把一些基本型別資料組合在一起形成的乙個新的復合資料型別,這個叫結構體

如何定義結構體

//第一種方式:這只是定義了乙個新的資料型別,並沒有定義變數

struct student

;//第二種方式

struct student2

st2;

//只能定義一次,不能再定義

//第三種方式

struct

//不知道變數是什麼型別

st3;

怎麼使用結構體變數

賦值和初始化

1.初始化,定義的同時賦初值。

2.先定義,定義完之後只能單個賦值

int

main()

//初始化,定義的同時賦初值。

struct student st2;

//定義完之後只能單個賦值

struct student *pst=

&st;

//表示pst可存放這種型別的位址

st.age=10;

pst->age=88;

//在計算機內部會被轉化成(*pst).age,這就是->的含義,也是一種硬性規定,所以pst->age等價於(*pst).age等價於st.age

st2.score=

88.8f

;在c語言中預設是double型別,如果希望乙個實數是floatl型別,則必須在末尾加f或f

st2.***=

'f';

printf

("%d %f %c\n"

,st2.age,st2.score,st2.***)

;}

如何取出結構體變數中的每乙個成員

1.結構體變數名.成員名

2.指標變數名->成員名(常用)

結構體變數的運算

結構體變數不能相加,不能相減,也不能相乘

但結構體變數可以相互賦值

結構體變數和結構體變數指標作為函式引數傳遞的問題

//  結構體變數和結構體變數指標作為函式引數傳遞的問題 

void

inputstudent

(struct student *);

//函式宣告

void

outputstudent

(struct student ss)

;int

main()

/*//對stu賦值不能對st賦值,函式載入完就沒有了。本函式錯誤

void inputstudent(struct student stu)

*/void

inputstudent

(struct student * pstu)

//pstu只佔四個位元組

//不修改內容時可不傳指標但是指標速度快,所以推薦用指標傳參

void

outputstudent

(struct student ss)

C語言之結構體

一 什麼是結構體 結構體是不同型別的資料組合成乙個有機整體。例如 學生的學號 姓名 性別 成績 位址 這些都是乙個學生的屬性,把這些屬性組織成乙個組合,組合中包含不同的資料型別,c和c 允許指定這樣的資料型別,稱為結構體。struct student 申明乙個結構體型別 struct是結構體申明的關...

C語言之結構體

在c語言中,可以使用結構體 struct 來存放一組不同型別的資料。結構體的定義形式為 struct 結構體名 結構體是一種集合,它裡面包含了多個變數或陣列,它們的型別可以相同,也可以不同,每個這樣的變數或陣列都稱為結構體的成員 member 請看下面的乙個例子 struct stu stu 為結構...

C語言之結構體

在c語言中,有一種型別聽著很任性,叫做自定義型別。顧名思義,這種型別是程式設計師自己定義的一種型別,它和陣列很相似,但也有一些區別。自定義型別包含以下幾種 結構體 列舉 聯合 結構體就是將具有不同或相同的型別放在一起的聚合型別。可能聽著有些像順口溜,上一段 捋一捋。struct peo a 在 中我...