結構體陣列

2021-09-06 17:27:35 字數 1193 閱讀 2645

5 結構體陣列

乙個結構體變數中能夠存放一組資料(如乙個學生的學號,姓名,成績等資料)。假設有10個學生的資料須要參加運算,顯然應該用陣列,這就是結構體陣列。結構體陣列與曾經介紹過的資料值型陣列不同之處在於每乙個陣列元素都乙個結構體型別的資料,它們分別包含各個成員(分量)項。

5.1 定義結構體陣列

和定義結構體變數的方法相仿,僅僅需說明其為陣列就可以。

struct student ;

struct student stu[3];

以上定義了乙個陣列 stu,其元素為 struct student 型別資料,陣列有 3 個元素。也能夠直接定義乙個結構體陣列。如:

struct student

stu[3]; 或

struct

stu[3];

5.2 結構體陣列的初始化

與其他型別陣列一樣,對結構體陣列能夠初始化如:

struct student

stu[3] = , ,

};定義陣列 stu 時,元素個數能夠不指定,即寫成下面形式:

stu = ,,};

編譯時,系統會依據給出初值的結構體常量的個數來確定陣列元素的個數。

當然,陣列的初始化也能夠用下面形式:

struct student ;

struct student stu = ,,};

即先宣告結構體型別,然後定義陣列為該結構體型別,在定義陣列時初始化。

從以上能夠看到,結構體陣列初始化的一般形式是在定義陣列的後面加上:

5.3 結構體陣列應用舉例

以下樣例說明結構體陣列的定義和引用。

#include

#include

#include

struct person

leader[3] = , ,

};void main()

printf("\n");

for(i=0;i<3;i++)

printf("%5s: %d\n", leader[i].name, leader[i].count);

system("pause"); }

執行結果例如以下:

lili

funzhang

zhang

funli

funzhang

lili: 3

zhang: 3

fun: 3

結構體 結構體陣列

void test 函式遞迴呼叫 允許函式體裡再次呼叫函式本身 使用遞迴一定要有出口 long fact int n return n fact n 1 定義乙個新的資料型別 struct mypoint 結構體型別所占用的記憶體空間是最大資料型別的整數倍。因為結構體型別的變數在分配記憶體時有記憶體...

結構體 結構體陣列

struct 結構體型別名 型別名 成員名 型別名 成員名 先宣告結構體型別,再定義結構體變數名 宣告結構體型別,不分配空間 定義結構體型別變數,就要分配記憶體空間 作 者 hh 完成日期 2018年8月15日 版本號 v1.0 問題描述 結構體巢狀 賦值 輸出 輸入描述 程式輸出 include ...

結構體陣列

陣列元素可以是任何的簡單資料型別,當然也可以是陣列 現在我們說陣列的元素也可以是結構型別的。可以構成結構型陣列。在實際應用中,經常用結構陣列來表示具有相同資料結構的乙個群體。如乙個班的學生檔案,乙個車間職工的工資表等。結構陣列的定義方法和結構變數相似,只需說明它為陣列型別即可。例如 include ...