结构体类型和结构体类型变量的区别
结构体类型是一种类型和int float 等这些是同一个概念;而变量是会分配内存的就如我们定义的一个变量。
结构体类型的定义
struct student
{
int age;
char name [20];
int score;
} ;
结构体变量的定义
struct studnet stu1,sty2;
共用体类型的定义
union student
{
int age;
char f;
double d;
};
定义一个公用体,这个共用体的大小不是和结构体一样所有变量的大小的和而是这些变量中占字节最大的哪一个成员变量的大小。结构体的内存分配和结构体是不同的,因为他是共用体所以他们不是像结构体一样每个变量都有自己的内存,而是大家共用一块内存。
定义共用体类型的变量
union student st1,st2;
共用体类型的数据的特点
- 共用体中定义的成员变量是存放在同一块内存中,这些成员变量可以是不同类型。但在每一瞬时只能存放其中的一个成员变量,而不是所有的成员变量都在同时存放。也就是在每一瞬时只有一个成员变量是起作用的其他的不起作用。在瞬时只有一个成员变量起作用而不是所有的成员变量起作用。
- 共用体中起作用的那个成员变量就是最后一次存放的成员,在输入一个新的成员后原有的成员就失去了作用。
- 在共同体中定义的共同体变量、共同体中的所有变量的地址都是相同的。