C語言奇妙之旅 結構體

2021-08-22 08:41:17 字數 1477 閱讀 3010

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

如果只能使用基本型別來寫程式, 那將是一件痛苦的事情!

把一些基本型別資料組合在一起形成乙個新的復合資料型別, 這個叫結構體。

由若干個"成員"組成, 其中的每乙個成員可以使乙個基本資料型別或者是乙個構造型別。

定義新的結構型別, 但沒有定義變數

一般形式

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例子...