结构体是用来定义多种类型的复合类型,在 C语言中与类的区别在于结构体注重的是数据而类除了数据还包含函数,第2点区别在于结构体所声明的成员默认是”public”点。而类的默认是private的。

下面是结构体的基本运用:

//定义结构体
struct Person{
    int age;
    int height;
    char *name;
};
//声明定义对象
    struct Person p={20,170,"lean"};
    struct Person p2={.name="lean",.age=22,.height=165};
//匿名结构体的对象
struct{
    int age;
    int height;
    char *name;
} p4;

//又一次声明类型
typedef struct Person MyPerson;
MyPerson p3={20,170,"lean"};
  • 结构体所占存储空间是最大成员字节数的倍数
  • 结构体内部存储空间是顺序排序的
  • 结构体类型也是有作用域滴
  • 结构体的改动仅仅能通过成员去改动
  • 结构体可嵌套定义,但不能包含本身

结构体指针的2种方式

struct Person p={20,170,"lean"};
struct Person *pp=&p;
printf("%d %d",(*pp).age,pp->age);