有些结构体的类型具有类似数组的特性,这里小编称为数组结构体。
#define Num 10
typedef struct A {
int data;
}AC[Num]; // AC为该结构体的类型,该类型定义的变量具有数组的特性
typedef struct B {
AC ac; // 定义数组结构体变量,这里的ac具有数组的特性
}B;
int main() {
int i;
B* bb;
bb = (B*)malloc(sizeof(B));
for (i = 0; i < 3; i++) {
bb->ac[i].data = i+1;
// b->ac[i] = i+1; 为错误的表达式,因为ac[i]是AC类型,i+1是int类型,它们不兼容
}
for (i = 0; i < 3; i++) {
printf("%d\n", bb->ac[i].data); // 1 2 3
}
return 0;
}
这与下面的代码的功能一样:
#define Num 10
typedef struct A {
int data;
}AC;
typedef struct B {
AC ac[Num];
}B;
int main() {
int i;
B* bb;
bb = (B*)malloc(sizeof(B));
for (i = 0; i < 3; i++) {
bb->ac[i].data = i + 1;
}
for (i = 0; i < 3; i++) {
printf("%d\n", bb->ac[i].data); // 1 2 3
}
return 0;
return 0;
}
(本篇章为小编于学习过程中的感悟和总结,难免存在疏忽和错误之处,希望能够得到各位大神的批评指正)