一,C/C++的基本结构体,共用体以及枚举
1.1 C/C++基本结构体
(1)结构体的概述
(2)结构体类型的定义
(3)结构体变量的操作
1.2 C/C++基本共用体
1.3 C/C++枚举
1.1 C/C++结构体
(1)结构体的概述
结构体是一种自定义的数据类型,它可以包含多个不同的数据类型的成员。
结构体由一个或多个成员变量组成,每个成员变量都可以有不同的数据类型和名字。结构体也可以嵌套定义在其他结构体中,以实现更复杂的数据模型。
例如定义学生的学号,姓名、性别、年龄、地址等属性:使用基本类型定义的话有点麻烦,我们就可以使用结构体来定义:
struct student{
int num;
char name[16];
char sex;
int age;
char addr[32];
};
(2)结构体类型的定义
在 C++ 语言中,可以使用 struct
关键字来定义一个结构体类型。
结构体的基本语法:
struct 结构体名称 {
数据类型 成员变量1;
数据类型 成员变量2;
...
};
结构体类型定义:
struct Student {
int id; // 学生学号
char name[20]; // 学生姓名
int age; // 学生年龄
};
// 结构体定义变量
struct Student tom;
struct Student Lion;
注意:
-
系统不会为结构体类型开辟空间,只会为结构体类型定义的变量开辟空间。
-
定义结构体类型时,不要给成员初始化值。
三种定义结构体类型的方法:
1,先定义结构体类型,再定义结构体变量。
//结构体类型
struct Student{
int id;
char name[16];
};
//结构体变量
struct Student tom;
2,定义结构体类型的同时定义变量。
struct Student{
int id;
char name[16];
} tom;//同时定义变量
3,定义一次性结构体类型。
struct{
int id;
char name[16];
} tom;
(3)结构体变量的操作
局部变量不初始化,变量中的成员内容不确定(随机值)
结构体变量的初始化:
结构体变量的初始化必须遵循成员的顺序以及成员自身的数据类型。
1.2 C/C++基本共用体
共用体(union
)是一种特殊的数据类型,它允许在同一个内存区域存储不同的数据类型。与结构体不同的是,共用体只能同时存储其中一个成员的值。
共用体的语法:
union my_union {
int i;
float f;
char str[10];
};
共用体和结构体的区别:
-
结构体所有成员拥有独立的内存空间。
-
共用体的所有成员共享同一块内存空间。
-
共用体的空间是由最大的成员类型决定的。
1.3 C/C++枚举
枚举(
enum
)是 C++ 中的一种数据类型,它允许将一组常量值定义为一个命名集合。枚举中的每个元素都有一个关联的整数值,默认情况下从 0 开始递增。枚举元素也可以显式地指定整数值。
枚举的语法如下:
enum EnumName {
Element1,
Element2 = 10,
Element3
};
总结:
-
结构体(struct)。结构体是一种用户自定义的复合数据类型,它由多个不同数据类型的成员组成。结构体中的每个成员可以具有不同的数据类型和长度,并且每个成员都可以单独访问。通过使用结构体,可以方便地表示一个对象或者实体,增加代码可读性和可维护性。
-
共用体(union)。共用体也是一种用户自定义的复合数据类型,它与结构体类似,但所有成员都共享同一个内存空间。也就是说,在任何时刻只能有一个成员被赋值或访问。共用体通常用于需要在不同情况下使用相同内存区域的场景。需要注意的是,由于共用体中所有成员都共享同一个内存空间,因此在使用时应该小心避免出现未定义行为。
-
枚举(enum)。枚举是一种用户自定义的基本数据类型,它由多个命名常量值组成。每个枚举元素都有一个关联的整数值,默认情况下从 0 开始递增。枚举元素也可以显式地指定整数值。使用枚举可以方便地定义一组相关的常量,并增加代码可读性和可维护性。