凡科轻站,在网站后台设置wap模板目录,展厅设计方案,公司网站设计 优帮云1. 结构体、共用体的定义及区别,typedef 定义别名
结构体的定义
结构体是一种用户自定义的数据类型,它可以将不同类型的数据组合在一起。例如,定义一个表示学生信息的结构体:
// 定义结构体类型 struct Student
struct Student {char name[20];int age;float score;
};共…1. 结构体、共用体的定义及区别,typedef 定义别名
结构体的定义
结构体是一种用户自定义的数据类型,它可以将不同类型的数据组合在一起。例如,定义一个表示学生信息的结构体:
// 定义结构体类型 struct Student
struct Student {char name[20];int age;float score;
};共用体的定义
共用体也是一种用户自定义的数据类型,但它的所有成员共享同一块内存空间。例如,定义一个简单的共用体:
union Data {int int_value;float float_value;char char_value;
};结构体与共用体的区别
内存分配: 结构体的每个成员都有自己独立的内存空间,结构体所占内存大小是所有成员内存大小之和(考虑内存对齐)。例如,上述struct Student结构体,name数组占20字节,age占4字节,score占4字节(假设float占4字节),总共28字节(考虑内存对齐可能会有一些填充)。共用体的所有成员共享同一块内存,其大小等于占用内存最大的成员的大小。对于union Data,int可能占4字节,float占4字节,char占1字节,所以union Data的大小为4字节。 数据存储和访问: 结构体中每个成员都可以独立存储和访问不同的值。例如,可以分别设置struct Student结构体中name、age和score的值。共用体在某一时刻只能存储其中一个成员的值,因为它们共享内存。当给一个成员赋值时,可能会覆盖其他成员的值。 使用 typedef 定义结构体、共用体别名
结构体别名:typedef struct Student StudentInfo; // 现在 StudentInfo 就可以当作 struct Student 使用StudentInfo student1; // 等同于 struct Student student1;共用体别名:typedef union Data MyData;MyData data; // 等同于 union Data data;2. 结构体和共用体数组、指针的定义和初始化,以及参数传递及应用
结构体数组和指针
结构体数组定义与初始化:struct Student students[