1.定义一个结构体类型,结尾记得加分号:
struct Stu{
char name[32];
char sex;
int age;
};
结构体里面也可以包含其它的结构体,或者结构体指针。
这个时候我们只是建立了一个结构体类型,系统并没有给它在内存上分配空间,所以也不能初始化或赋值,我们可以在定义结构体的同时在结尾创建一个结构体s1,然后对s1进行操作:
struct Stu{
char name[32];
char sex;
int age;
}s1;
2.创建及初始化结构体
创建一个结构体:
struct Stu s1;
对数组不能直接赋值,我们可以调用函数strcpy:
strcpy(s1.name, "zhangsan");
字符要用单引号:
s1.sex = 'm';
整形直接赋值:
s1.age = 30;
结构体的大小和结构体包含的类型及其排列方式有关。
3.结构体指针
创建一个结构体指针:
struct Stu *p1 = malloc(sizeof(struct Stu));
初始化,结构体指针要用 ‘->’连接,否则会报错:
strcpy(p1->name, "lisi");
p1->sex = 'w';
p1->age = 30;
结构体指针的大小就是指针的大小,是固定的,32位系统的指针大小是4字节,64位系统的指针大小是8字节,和结构体包含的类型及其排列方式没有关系。