VS003(枚举、结构体类型)

//枚举类型:关键字"enum"把所以可能情况一一列举            结构体类型:把一个部分属性添加在结
//1.声明枚举类型(在Main函数外部声明)                              构体里面                    
//2使用枚举类型                                                                     //1在Main函数外定义一个结构体

                                                                                               //2使用结构体

                                                                                               //3结构体数据进行赋值
    internal class Program                                                    internal class Program
    {                                                                                       {

      enum Season                                                                   struct Student
       {                                                                                        {
           //列举这个枚举的所以情况                                            //public 公共的共有的,可以在其他
           Spring = 1,//春                                                               进行访问
           Summer = 2,//夏                                                            public int age;//年龄
           Autumn = 3,//秋                                                             public string name;//姓名
          Winter = 4,//冬                                                                public double salary;//工资
      }                                                                                          }

       static void Main(string[] args)                                          static void Main(string[] args)
        {                                                                                      {
           Season s1 = Season.Winter;//定义并使用枚举类型        Student zhangsan = new Student()
           s1 = Season.Spring;//修改s1的值                                     zhangsan.age = 18;
           Console.WriteLine("目前是:" + s1);                                zhangsan.name = "张三";
           Console.ReadKey();                                                          zhangsan.salary = 10000;
        }                                                                                            Console.WriteLine("我的名字是           }                                                                                             {0},我的年龄是{1}岁,我的工资是          输出为"目前是:Spring"                                                         {2}  元", zhangsan.name,

                                                                                                     zhangsan.age, zhangsan.salary);

                                                                                                      输出为:"我的名字是张三,我的                                                                                                          年龄是18岁,我的工资是10000元"

枚举类型(Enumeration Type)和结构体(Structure Type)是 C 语言及其衍生语言(如 C#、C++)中两种不同的用户自定义数据类型,它们在设计目的、内存布局和使用场景上有显著区别。 ### 枚举类型的特点与使用场景 枚举类型用于定义一组命名的整型常量,通常表示某种状态、选项或分类。其默认值从 `0` 开始,依次递增,但也可以显式指定每个常量的值。枚举类型的声明使用 `enum` 关键字,其成员是常量,不能被修改[^2]。 例如,定义一周的每一天可以使用如下枚举: ```c enum Week { Mon, // 0 Tue, // 1 Wed, // 2 Thu, // 3 Fri, // 4 Sat, // 5 Sun // 6 }; ``` 枚举类型适用于以下场景: - 表示有限状态集合,如状态机的状态(就绪、运行、等待等)。 - 提高代码可读性,例如将 `0` 和 `1` 替换为 `False` 和 `True`。 - 作为函数参数或返回值,明确表达意图,避免魔法数字的使用[^1]。 ### 枚举结构体的特点与使用场景 结构体是用于组合不同类型数据的复合数据类型,每个成员都有自己的内存空间,可以同时存在。结构体适用于表示具有多个属性的对象或数据集合。 例如,表示一个人的体测信息可以使用如下结构体: ```c struct Physical_test_info { struct Body_form _bf; // 身体形态 struct Physical_fitness _pf; // 身体素质 }; ``` 结构体适用于以下场景: - 表示现实世界中的实体对象,如学生、员工、设备等。 - 作为函数参数或返回值,传递多个相关数据。 - 构建复杂数据结构,如链表、树、图等[^5]。 ### 枚举结构体的本质区别 | 特性 | 枚举类型 | 结构体类型 | |--------------|------------------------------|------------------------------| | 数据本质 | 整型常量集合 | 多个不同类型字段的组合 | | 可变性 | 成员不可变 | 成员可变 | | 内存布局 | 单一整型值 | 多个字段各自占用内存空间 | | 使用目的 | 表示有限状态或分类 | 表示复合对象或数据集合 | | 可扩展性 | 只能添加新的常量 | 可添加新字段、嵌套结构体等 | ### 示例代码:枚举结构体的结合使用 以下代码展示了枚举结构体结合使用的典型场景,例如定义一个学生的状态和基本信息: ```c #include <stdio.h> // 定义学生状态枚举 enum StudentStatus { Enrolled, // 0 Graduated, // 1 Suspended // 2 }; // 定义学生结构体 struct Student { int id; char name[50]; enum StudentStatus status; }; int main() { struct Student s1 = {1001, "Alice", Enrolled}; printf("Student ID: %d\n", s1.id); printf("Name: %s\n", s1.name); printf("Status: %d\n", s1.status); return 0; } ``` 在这个例子中,枚举 `StudentStatus` 表示学生的状态,而结构体 `Student` 包含了学生的多个属性,包括状态信息,二者结合使用可以更好地表达数据语义[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值