為什麼需要結構體,看**
# include struct student //定義乙個學生型別,裡面有age, score, ***, 然後可以定義這個型別的變數定義結構體int main(void);/*
int age;
float score;
char ***;
int age2;
float score2;
char ***2;
*/ return 0;
}
# include //第一種方式,最常用的是第一種,第二種第三種都不好,最好不要使用結構體的初始化和初值:struct student
;//第二種方式
struct student2
st2;
//第三種方式
struct
st3;
int main(void)
; return 0;
}
# include struct student從結構體中取值示例:;int main(void)
; //初始化 定義的同時賦初值
struct student st2; //這樣沒有賦值,因為已經定義好了,所以後面賦值只能單個賦值
st2.age = 10;
st2.score = 88;
st2.*** = 'f';
printf("%d %f %c\n", st.age, st.score, st.***);
printf("%d %f %c\n", st2.age, st2.score, st2.***);
return 0;
}
# include struct student結構體複習練習:;int main(void)
; //初始化 定義的同時賦初值
struct student * pst = &st;
st.score = 66.6f; //第一種方法
pst->age = 88; //第二種方式 pst->age 在計算機內部會被轉換成 (*pst).age, 沒有為什麼,
//這就是->的含義,這是一種硬性規定
// 所以 pst->age 等價於 (*pst).age 也等價於 st.age
// 我們之所以知道 pst->age 等價於 st.age, 是因為pst->age 是被轉化成了
// (*pst).age來執行
printf("%d %f\n", st.age, pst->score);
return 0;
}
# include struct student通過函式對結構體的輸入輸出示例:; //分號不能省
int main(void)
; printf("%d %c %s\n", st.age, st.***, st.name);
struct student *pst = &st;
printf("%d %c %s\n", pst->age, pst->***, pst->name); // ps->age 轉化成 (*pst).age 也等價於st.age
return 0;
}
輸出函式採用了傳送內容的形式
/*2023年3月15日20:14:31
功能:通過函式對結構體的輸入輸出
*/# include # include struct student
; //分號不能省
//結構的引數傳遞
void inputstudent(struct student *);
void outputstudent(struct student);
int main(void)
void outputstudent(struct student ss)
void inputstudent(struct student * pstu) //pstu 只佔4個位元組
/*//本函式無法修改主函式 15行st的值,所以本函式是錯誤的
void inputstudent(struct student stu)
*/
/*2023年3月15日20:14:31
示例:傳送位址還是傳送內容
傳送內容傳輸的內容太多,需要複製很多的內容,比較消耗時間和資源,影響效率,傳送位址就比較小
指標的優點之一:
快速的傳遞資料,
耗用記憶體小
執行速度快
*/# include # include struct student
; void inputstudent(struct student *);
void outputstudent(struct student *);
int main(void)
void outputstudent(struct student * ss)
void inputstudent(struct student * pstu) //pstu 只佔4個位元組
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為結構體成...