為什麼需要結構體:
為了表示一些複雜的事物,而普通的基本型別無法滿足實際要求
什麼叫結構體:
把一些基本型別資料組合在一起形成的乙個新的復合資料型別
如何定義乙個結構體:
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為結構體成...