目录
结构体
定义
在定义时,需要注意写完后要加分号。如下代码中的xuanpiao可以省略,但是省略后,不能在定义新的变量了。使用与数组相似,数组时存放同一类型数据,而结构体存放不同类型。
struct xuanpiao
{
int tickets;
char name[32];
};
占用空间
占用空间为结构体中所有变量的总空间,比如上方的例子占用空间为int 型的4个字节加上char类型数组的32个字节,共36字节。
调用形式
其中 struct xuanpiao这个整体想相当于int这种定义类型。
结构体
struct xuanpiao stu;
结构体数组
struct xuanpiao ch[3];
结构体指针
struct xuanpiao *p;
共用体
定义
与结构体定义相似,但在分配空间时不同。
union xuanpiao
{
int tickets;
char name[32];
}
占用空间
占用空间由当中占用最大空间的变量决定。比如上述int 4字节,char 32字节,最后分配32字节。
使用场景
结构体可以用在输出多个不同的类型的数据,比如学生管理系统中每个学生的信息。而共用体可以用在结构体当中,比如在学校管理系统中,需要输出老师和学生信息,并且这些信息有部分相同,不相同的部分用共用体来完成。
struct people
{
int name[20];
int age;
union
{
int class;
char possentage[20];
}str;
};
使用形式
若前面是地址如图1,用 ”->“ ;如果前面是常量,则用 ” . “ 。前面的式子p相当与告诉我们他是结构体,后面的式子tickets可以直接与我们之前所学变量用法等同。
struct xuanpiao *p;
printf("%d",p->tickets);
struct xuanpiao *p;
printf("%d",(*p).tickets);