為了表示一些複雜的事物, 而普通的基本型別無法滿足實際要求。
如果只能使用基本型別來寫程式, 那將是一件痛苦的事情!
把一些基本型別資料組合在一起形成乙個新的復合資料型別, 這個叫結構體。
由若干個"成員"組成, 其中的每乙個成員可以使乙個基本資料型別或者是乙個構造型別。
定義新的結構型別, 但沒有定義變數
一般形式定義了資料型別, 也定義了變數struct 結構體名稱
成員表列
不要忘記大括號結尾的結束符!!!
例struct p
int a[10];
char 'a';
一般形式直接定義結構體型別變數struct 結構體名
成員列表;
} 變數名列表;
這次的結束符在變數列表的後面哦!
例struct p
int i;
char 'a';
} p1, p2;
一般形式推薦第一種!struct
成員列表
} 變數列表;
#include struct student
;int main()
; struct student tom = ;
struct student *he = &tom; // 通過指標訪問結構體及其成員
// 我們不能像讀寫變數一樣讀寫 student 結構體
// 不能直接對結構體進行比較,例如 sam == tom 是不對的
// 但是可以對已經定義的結構體變數進行交換,如下所示:
tom = sam;
// 通過輸出成員的方式輸出 tom
printf("tom = \n", tom.mid, tom.final, tom.hmws);
// 注意點號
printf("*he = \n", he->mid, he->final, he->hmws);
// 注意箭頭
// 通過其他方式也可以獲得同樣的輸出結果,如下所示:
printf("*he = \n", (*he).mid, (*he).final, (*he).hmws);}/*
例子來自c語言中文網:
*/
C語言奇妙之旅 結構體陣列
定義乙個結構體陣列的方式與定義結構體變數的方法相同,只是把結構體變數替換成陣列。定義結構體陣列的一般形式 struct 結構體名 成員列表 陣列名 struct student char a int a 3 student 5 直接定義結構體陣列 struct char a int a 3 stud...
C語言奇妙之旅 for巢狀if
例子 求 1 10 能被2整數的數 程式功能 列印 0 到 10 程式版本 v2.33 include int main printf 我 d能被2整除 i if和for預設能控制一條語句,不過為了 規範盡量加上大括號,這也看得出我 不夠規範,d要對應乙個變數在字串後面,也就是格式字元都要在字串後面...
C語言奇妙之旅 while
while 反覆執行摸乙個動作稱之為迴圈 while可以轉換成for,for也可以轉換成while,也就是for和while可以互相轉換 但是for的邏輯性更強,更不容易出錯,推薦使用for while的一般形式 初始化變數 while 迴圈條件 例子 計算0 100偶數和 程式功能 while例子...