📜  C结构体、共同体、枚举测试4(1)

📅  最后修改于: 2023-12-03 14:40:27.308000             🧑  作者: Mango

C结构体、共同体、枚举测试4

1. 什么是C结构体?

C结构体是一种用户自定义数据类型,用来存储多个类型的数据,这些数据可以是相同类型或不同类型的数据。

1.1 定义C结构体

C结构体的定义通常包含以下几部分:

struct 结构体名 {
    数据类型 成员变量1;
    数据类型 成员变量2;
    数据类型 成员变量3;
    …
};

其中,结构体名是用户定义的结构体名称;成员变量是结构体内部存储的数据类型,也称为结构体成员;成员变量之间用分号隔开。

1.2 使用C结构体
// 定义一个结构体
struct Person {
    char name[20];
    int age;
    float weight;
};

int main() {
    // 初始化结构体
    struct Person person1 = { "Tom", 20, 60.5 };
    struct Person person2 = { "John", 25, 70.5 };
    // 访问结构体成员变量
    printf("person1: name=%s, age=%d, weight=%.1f\n", person1.name, person1.age, person1.weight);
    printf("person2: name=%s, age=%d, weight=%.1f\n", person2.name, person2.age, person2.weight);
    return 0;
}

输出:

person1: name=Tom, age=20, weight=60.5
person2: name=John, age=25, weight=70.5
2. 什么是C共同体?

C共同体(也称联合体)是一种用户自定义数据类型,它的所有成员共享同一块内存空间。

2.1 定义C共同体

C共同体的定义与C结构体类似,也包含成员变量。

union 共同体名 {
    成员变量1;
    成员变量2;
    成员变量3;
    …
};

其中,共同体名是用户定义的共同体名称;成员变量是共同体内部存储的数据类型,也称为共同体成员。

2.2 使用C共同体
// 定义一个共同体
union Data {
    char c;
    int i;
    float f;
};

int main() {
    union Data data;
    data.c = 'A';
    printf("data.c = %c\n", data.c);
    data.i = 100;
    printf("data.i = %d\n", data.i);
    data.f = 12.34;
    printf("data.f = %.2f\n", data.f);
    printf("data.c = %c\n", data.c); // 注意观察共同体成员之间的共享情况
    return 0;
}

输出:

data.c = A
data.i = 100
data.f = 12.34
data.c =  
3. 什么是枚举?

枚举是一种用户自定义类型,用来枚举(列举)一组有限的值。

3.1 定义枚举类型

C语言中,枚举类型定义方式如下:

enum 枚举类型名 {
    枚举成员名1,
    枚举成员名2,
    枚举成员名3,
    …
};

其中,枚举类型名为用户定义的类型名称;枚举成员名为用户定义的枚举成员名称。

3.2 使用枚举类型
// 定义一个枚举类型
enum Color {
    RED,
    GREEN,
    BLUE
};

int main() {
    enum Color color = GREEN;
    switch (color) {
    case RED:
        printf("color is RED\n");
        break;
    case GREEN:
        printf("color is GREEN\n");
        break;
    case BLUE:
        printf("color is BLUE\n");
        break;
    default:
        printf("unknown color\n");
        break;
    }
    return 0;
}

输出:

color is GREEN
4. 总结

C结构体、共同体、枚举是C语言中比较常用的自定义数据类型,它们可以用来存储多种类型的数据,方便代码的编写和阅读。在实际编程中,我们应根据需要选择不同的自定义数据类型来完成任务。