日期:2023-12-22
一:结构体数组的基本内涵
结构数组是结构与数组的结合体,与普通数组的不同之处在与每个数组元素都是一个结构类型的数据,包括多个成员项。
这里首先声明一段结构体类型
struct student{
int num;
char name[10];
int computer,english,math;
}
二;个人对于结构数组的一些想法
(1)在利用结构体类型去定义结构体数组时,例如struct student (结构体类型) students[50],这段定义对于结构体数组分配了50个首地址:分别从students[0] -students[49],作为五十个结构体数组元素,用来储存50个学生的信息。
(2)在c语言中,编译程序为所有结构数组元素分配足够的存储单元,结构数组的元素是连续存放的,程序如果在定义时对于部分结构体数组元素进行了初始化分配数据(注意这里对于数组元素的分配是按照结构体类型声明时的定义类型变量的顺序进行的),但对于其他数组元素,编译程序仍然会预分配内存空间。
比如struct student student[50]={101,"zhang",76,85,78};
这段声明只针对students[1],然而其他数组元素依旧占据内存空间。
(3)由于每个结构数组元素的类型都是结构类型,其使用方法就和相同类型的结构变量一样。例如,对于结构数组students,既可以引用数组的元素,如students[i],也可以引用结构数组元素的成员。
(4)由于结构数组中的元素都是属于相同的结构类型,因此,数组元素之间可以直接进行初始化。students[1]=students[k];