C語言 結構體學習

2021-09-30 13:25:20 字數 2556 閱讀 2226

為什麼需要結構體:

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

什麼叫結構體:

把一些基本型別資料組合在一起形成的乙個新的復合資料型別

如何定義乙個結構體:

3中方式:推薦使用第一種

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

struct student

;//第二種方式

struct student2

st2;

//第三種方式

struct

st3;

怎麼去使用結構體變數:

賦值和初始化

定義的同時可以賦初值

如果定義完成後,則只能單個的賦初值

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

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

2>指標變數->成員名(第二種更常用)

指標變數->成員名 在計算機內部會被轉化成(*指標變數名).成員的方式來執行

例子:struct student st=;//初始化 定義同時賦初值

struct student *pst = &st;// &st不能寫成st

pst->age;//第二方式

st.age;//第一種方式

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

pst->age 等價於(*pst).age  也等價 st.age

pst->age的含義:pst所指向的那個結構體變數中的age這個成員

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

結構體變數的運算

舉例:動態構造存放學生資訊的結構體陣列

鍊錶:

#includestruct student

;void main()

;//初始化 定義的同時賦初值

str2.age = 10;

str2.score = 88;

str2.*** = 'f';

printf("%d %f %c\n",st.age,st.score,st.***);

printf("%d %f %c\n",str2.age,str2.score,str2,***);

}

#includestruct student 

;void main()

;//初始化 定義同時賦初值

struct student *pst = &st;// &st不能寫成st

pst->age;//第二方式

st.score = 66.6f;//第一種方式 66.6在c語言中預設是double型別,如果希望乙個實數是float型別,則必須在末尾加f或f66.6是double 66.6f是float型別

//浮點數不能準確儲存

printf("%d %f\n",st.age ,pst->score);

}

結構體變數和結構體變數指標作為函式引數傳遞的問題  通過函式完成對結構體變數的輸入和輸出

#include#includestruct student 

;//分號不能省

//本函式無法修改st的值,是錯誤的

//void inputstudent1(struct student stu)

//void inputstudent(struct student *pstu) //*pstu只佔四個位元組

//這個函式傳送內容 不傳送位址 不太好

//void outputstudent(struct student st)

////這個函式最好

void outputstudent(struct student *pst)

void main()

氣泡排序

#includevoid sort(int *a,int len)

} } }

void main()

; int i = 0;

sort(a,6);

for(i = 0; i<6;++i)

printf("\n");

}

動態構造存放學生資訊的結構體陣列(學生管理系統)

#include#includestruct student

;void main()

{ int len;

int i,j;

struct student t;

printf("請輸入學生的個數:\n");

printf("len = ");

scanf("%d",&len);

//動態構造一維陣列

for(i =0;i是公升序 《是降序

{ for(j = 0;j

C語言學習 結構體

include include include 宣告結構體 struct student student結構體名 int age char int main 初始化結構體變數 bbbb strcpy s1.name,bbbb s1.age 22 s1.m 列印結構體變數,逐個列印 printf s ...

C語言學習 結構體

題目要求 學生的記錄由學號 姓名 專業組成,根據班級人數,將學生記錄存放在結構體陣列中,由於部分同學轉專業,學生記錄發生了變化,請程式設計實現根據學號查詢查詢學生並修改專業,分別輸出轉專業和未轉專業的學生記錄。要求 班級人數 學生記錄均由鍵盤輸入 include define m 100 要求 1....

c語言學習結構體

結構體格式 struct 結構體名稱 結構體是一種集合,它裡面包含了多個變數或陣列,資料型別可以相同也可以不相同。eg可以包含乙個人的身高 double 體重 int 顏值 char ii 21 結構體的定義如下所示,struct為結構體關鍵字,tag為結構體的標誌,member list為結構體成...