一個結構體變量隻可以存放一組類型不同的數據,如上述一個structstudent類型的變量隻能存放一個學生的數據,如果要存放多個學生的數據,則必須定義一個結構體數組,其中每個數組元素用於存放一個學生的數據。結構體數組與普通數組的不同在於,其每個元素都為同一結構體類型的數據。結構體數組與一般數組的定義相似,其格式為:
struct結構體類型名數組名[元素個數];
如:structstudenta[10];定義了一個structstudent類型的數組a,數組中有10個元素。
與一般數組一樣,結構體數組可以在定義的同時對每個元素進行初始化,其方法與結構體變量初始化方法相同。如:
structstudents[3]=
{{4325,"zhangfang",19,M},
{3435,"liming",20,F},
{6736,"wugang",21,M}};
對於結構體數組中各元素的引用與普通數組相同,通過下標的方式來引用每個元素,而每個元素的成員通過分量運算符“.”實現,如:s[1].age、s[2].num等。
[例111]計算學生的平均成績和不及格的人數。
structstu
{
intnum;
charname[15];
charsex;
intscore;
}s[3]={
{1101,"Liping",M,90},
{1202,"Zhangping",M,82},
{1123,"Hefang",F,92}
};
voidmain()
{
inti,count=0;
floatave,sum=0;
for(i=0;i
structfriend
{
charname[20];
charphone[10];
};
voidmain()
{
structfriendf[30];
inti;
for(i=0;i