对于一个结构体来说,定义它的时候系统是不给分配空间,只有用它来定义变量的时候才回分配空间。
几种定义struct的形式
一
struct 结构体名
{
成员列表;
};
struct 结构体名 变量名;
注意struct 结构体名 是代表类型名 是不能分开的
二
struct 结构体名
{
成员列表;
}变量名;
三
一个结构体的变量占用的内存实际大小是可以用sizeof()来求出的。而这个运算量里面可以是变量,数组或者结构体变量,也可以是数据类型的名称;
四
访问结构体的内部成员一定要用一层层的去寻找,不能直接访问。
五
结构体的初始化
struct 结构体名 变量名 = {初始化数据成员};
六
具有相同结构体类型的结构体也可以组成数组,成他们为结构体数组。结构体数组的每一个数组元素都是结构体类型的数据,他们分别包括每个成员项;
七
定义结构体数组有三种方法: 先定义结构体类型,再定义结构体数组。或者在定义结构体类型的同时定义结构数组。其次是直接定义结构体数组。
struct
{
char name[20];
}stu[2];
八
结构体数组的初始化只能对全局的或者静态的存储类别来初始化。
九
比如要看结构体数组中第二个元素的name 则应该形式为stu[1].name;
十
可以将一个结构体数组元素的值赋给同一结构体类型的数组的另外一个元素,或者赋给同一类型的变量。
十一
结构体指针就是设定一个指针变量来指向一个结构体,而这个指针变量的值就是该结构体的起始地址。
struct 结构体名 *结构指针名 访问的形式是 结构体指针名->成员名
十一
共用体又称为联合体。其形式为
union 共用体名
{
成员表列;
};
十二
在共用体中,它的成员大小往往是不同的,所共用体变量在存储时总是按照成员中数据长度最大的成员占用内存空间。而结构体是按照成员的数据长度之和来占用空间的。
十三
在使用共用体类型变量的数据时要注意,在共用体类型变量中期作用的成员是最后一次存放的成员,在存入一个新的成员后原来的成员将失去作用。
十四
在程序中,结构体和共用体是经常嵌套使用的。
阅读(1296) | 评论(0) | 转发(0) |