结构体和数组的异同
学习的教材说结构体为“超级数组”,所以看看数组和结构体的相似点
定义两个简单的结构体和数组并初始化
c99对应的数组指定初始化和结构体指定初始化有相似之处
int a[]={1,[6]=23,4}
// a[0]=1,a[6]=23,a[7]=4.
struct lok {
int a;
float b;
int c[10];
}L{ .b=1.1 };
struct lok {
int a;
double b;
int c[10];
}L{
1,1.1,{
0} };
int A[2] = {
1,2 };
存储的形式
存储都为连续空间,数组存储的为同一数据类型,但结构体可能因为存储不同数据类型的字节对齐导致中间存在剩余空间。
- 字节对齐:内存都是按照byte划分的,但是为了内存管理和访存速度