C語言學習八結構體

2021-09-01 16:26:00 字數 2584 閱讀 4257

為什麼需要結構體,看**

# 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為結構體成...