比如你要申请int型的未知个数数组。可以以下程序
#include<stdioh>
#include<stdlibh>
main()
{
int p;
int n;
printf("请输入录入个数N:\n");
scanf("%d",&n);
p = (int )malloc(nsizeof(int));
//然后把p当作数组指针用就可以了。。~~~~
}结构数组就是具有相同结构类型的变量集合。
假如要定义一个班级40个同学的姓名、性别、年龄和住址, 可以定义成一个结构数组。如下所示:
struct{ char name[8]; char sex[2]; int age; char addr[40]; }student[40];也可定义为:
struct string{ char name[8]; char sex[2]; int age; char addr[40]; }; struct string student[40];需要指出的是结构数组成员的访问是以数组元素为结构变量的, 其形式为:
结构数组元素成员名
例如:
student[0]name student[30]age实际上结构数组相当于一个二维构造, 第一维是结构数组元素, 每个元素是
一个结构变量, 第二维是结构成员。
注意: 结构数组的成员也可以是数组变量。
例如:
struct a { int m[3][5]; float f; char s[20]; }y[4];为了访问结构a中结构变量y[2]的这个变量, 可写成
y[2]m[1][4]01定义结构体数组
1、一个结构体变量中可以存放一组有关联的数据(如一个学生的学号、姓名、成绩等数据)。如果有10个学生的数据需要参加运算,显然应该用数组,这就是结构体数组。
2、结构体数组与之前介绍的数值型数组的不同之处在于每个数组元素都是一个结构体类型的数据,他们都包括各个成员项。
3、定义结构体数组一般形式
(1)struct 结构体名
{成员表列}数组名[数组长度];
(2)先声明一个结构体类型(如struct Person),然后再用此类型定义结构体数组:结构体类型 数组名[数组长度];
4、对结构体数组初始化的形式是在定义数组的后面加上:={初值表列};
5、在定义结构体数组时进行初始化,为清晰起见,将每个学生的信息用一对花括号包起来,这样做,阅读和检查比较方便,尤其当数据量多时,这样是有好处的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)