日志19

结构体

一、结构体(struct)

1.定义:结构体是一种用户自定义的数据类型,用于将不同类型的数据组合在一起。

例如,定义一个表示学生信息的结构体:

struct Student {
    std::string name;
    int age;
    float score;
};


2.使用:可以通过以下方式创建结构体变量并访问其成员。

Student stu1;
stu1.name = "Alice";
stu1.age = 20;
stu1.score = 85.5f;

(1)结构体数组:可以定义结构体数组来存储多个结构体实例。例如,Student classList[3];,可以通过循环来初始化和访问数组中的结构体元素。

(2)结构体指针:可以使用结构体指针来操作结构体。例如,Student* pStu = &stu1;,通过指针访问成员可以使用->运算符,如pStu->age = 21;,这等价于(*pStu).age = 21;。

二、联合体(union)

1. 定义:联合体是一种特殊的自定义数据类型,它的所有成员共享同一块内存空间。例如:

union Data {
    int i;
    float f;
    char str[20];
};


2.使用:当定义一个联合体变量时,在某一时刻,只能存储其中一个成员的值。例如:

Data data;
data.i = 10;
cout << data.i << endl;
data.f = 3.14f;
cout << data.f << endl;


3.内存占用:联合体的大小取决于其最大成员的大小。在上面的例子中,Data联合体的大小至少是20字节(因为str成员大小为20字节),这样可以保证能存储任何一个成员的值。

三、枚举(enum)

1.定义:枚举类型用于定义一组命名的常量。

例如,定义一个表示星期几的枚举:

enum Weekday {
    MONDAY,
    TUESDAY,
    WEDNESDAY,
    THURSDAY,
    FRIDAY,
    SATURDAY,
    SUNDAY
};


2.使用:可以像使用其他数据类型一样使用枚举。例如,Weekday today = MONDAY;,枚举常量默认从0开始依次递增赋值,不过也可以手动指定枚举常量的值,如enum Color { RED = 1, GREEN, BLUE };,这里GREEN的值为2,BLUE的值为3。

3.枚举类型转换:枚举类型可以与整数类型相互转换,但这种转换可能会丢失枚举的语义信息,需要谨慎使用。

例如,int dayValue = (int)MONDAY;将枚举值转换为整数,Weekday anotherDay = (Weekday)2;将整数转换为枚举值。

全部评论

相关推荐

评论
点赞
收藏
分享
牛客网
牛客企业服务