集合在枚举数实例化后进行了修改_枚举类型(enum)和自定义数据类型(typedef)基础知识详解...

5ef6982c42b86cd5c949839d988fd225.png

枚举数据类型

枚举:一一列举。枚举类型是一些标识符的集合,从形式上看枚举类型就是用大括号将不同的标识符名称放在一起。用枚举类型声明的变量,其变量的值只能取自括号内的这些标识符。关键字:enum。

枚举类型的声明

1.枚举类型的一般形式。

enum 枚举类型名 {标识符列表};

实例:

enum weekday{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday};

2.带赋值形式的枚举类型声明

enum 枚举类型名{标识符[=整型常数],标识符[=整型常数],...标识符[=整型常数],}枚举变量;

实例:

enum Weekday{Sunday =0,Monday=1,Tuesday=2,Wednesday=3,Thursday=4,Friday=5,Saturday=6};

注:

  1. 编译器默认将标识符自动赋予整型常数。
  2. 可以自行修改整型常数的值。
  3. 如果只给前几个标识符赋整型常数,编译器会给后面的标识符自动累加赋值。

实例:

//1.自动赋值 enum weekday{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday};//1.等效结果enum weekday{Sunday=0,Monday=1,Tuesday=2,Wednesday=3,Thursday=4,Friday=5,Saturday=6};//2.可自行修改enum weekday{Sunday=3,Monday=2,Tuesday=1,Wednesday=5,Thursday=0,Friday=4,Saturday=6};//3.自动累加赋值enum weekday{Sunday=7,Monday=1,Tuesday=2,Wednesday,Thursday,Friday,Saturday};//3.等效结果enum weekday{Sunday=7,Monday=1,Tuesday=2,Wednesday=3,Thursday=4,Friday=5,Saturday=6};
0e923578fa3e2c41cf3c6862e05cdddc.png

枚举类型变量

定义变量方法:

enum Weekday{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday};[enum] Weekday myday;

关键字:enum 枚举类型名:Weekday 枚举类型变量: myday

注:

在C语言中,枚举类型名 包括关键字enum ,在C++语言中,允许不写关键字enum。

使用枚举变量方法

1.枚举变量的值只能是Sunday到Saturday之一。

myday = Tuesday;myday = Saturday;

2.一个整型数据不能直接赋值给一个枚举变量。

enum weekday{Sunday=7,Monday=1,Tuesday=2,Wednesday,Thursday,Friday,Saturday};enum weekday myday;

myday=3; 是错误的赋值方式。 必须通过强制类型转换来赋值。

例如:

myday =(enum weekday) 3 ; myday =Wednesday; //两个效果等同,均为正确赋值方式。 

3.可以直接定义枚举变量。

enum{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday}myday,week_end;

实例赋值输出:

#include using namespace std;void main(){ enum weekday{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday}; int a =2,b=1; weekday myday; myday =(weekday)a; cout<

结果为:

c78dc7da7fa66355cdcc965556444389.png

枚举类型的运算

枚举值相当于整数,可用枚举值来进行一些运算。

1.利用枚举值作判断比较。

枚举值可以和整型变量一起比较,枚举值之间也可以比较。

#include using namespace std;enum weekday{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday};void main(){ weekday myday1,myday2; myday1=Monday; myday2=Saturday; int n; n = myday1;  n= myday2+1; cout << "n=" <myday1) //枚举值和整型变量比较 cout<myday1"<

结果为:

9946ebca73088fe5145c818e96ae1706.png

2.利用枚举类型进行减法运算。 枚举值可直接进行减法运算。

#includeusing namespace std;void main(){ enum weekday { Sunday = 2, Monday =3,  Tuesday=4, Wednesday=5, Thursday=6, Friday=7, Saturday=1 };weekday myday1;weekday myday2;myday1 =Sunday; //2myday2 = Wednesday; //5cout<

结果为:-3

1b64f7c0432fb2ced40a53a54e6e0464.png

自定义数据类型

自定义数据类型,即用户自己定义类型说明符。其实就是由用户为定义的数据类型名另外再取一个别名,以便简化对类型名的引用,增加程序的可读性。 运用type of 完成操作。

语法:

typedef 

注:

原类型名:任意已定义的数据类型,包括系统的各种基本数据类型名以及用户自定义的构造类型名。

新类型名: 用户自己命名的标识符,在以后变量的声明中可以直接使用该名称。

例如:

 typedef int integerinteger a ,b;int a,b; //等效

使用自定义数据类型输出数据:

typedef char *CString ;#includevoid main(){ CString str ; char temp[] = "Hello World"; str =temp; cout<

结果为:

34b9986cb6dba1bb5723be8531d30048.png

注:

程序将字符指针重命名为CString ,CString就代表字符指针。

自定义数据类型的大小同原数据类型一样。

实例:

#includevoid main(){ typedef char *CString;cout<

结果为:

c11cf9abfa7f405281d555fd411710a7.png

即 CString和char* 一样,都是占用4个字节空间。

结构体总结

使用C语言开发的程序一般都大量使用结构体,在C++语言中更是增加了结构体的功能,程序设计阶段应多将关联紧密的数据组合成一个结构体,便于阅读和二次开发。

2460cab61477d266fb30c4f3ce4ab042.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言中,结构体是一种自定义数据类型,可以将不同类型的变量组合在一起,形成一个新的数据类型。结构体定义的基本形式如下: ```c struct 结构体名 { 数据类型 成员名1; 数据类型 成员名2; // ... }; ``` 其中,结构体名是用户自定义的名称,成员名是结构体中每个成员的名称,数据类型可以是任意C语言的数据类型,包括基本数据类型自定义数据类型。 结构体变量的定义方式如下: ```c struct 结构体名 变量名; ``` 读取结构体中的成员变量可以通过“.”运算符来实现,例如: ```c #include <stdio.h> struct Person { char name[20]; int age; }; int main() { struct Person p; printf("请输入姓名:"); scanf("%s", p.name); printf("请输入年龄:"); scanf("%d", &p.age); printf("姓名:%s,年龄:%d\n", p.name, p.age); return 0; } ``` 枚举是一种特殊的数据类型,用于定义一组常量。枚举的定义方式如下: ```c enum 枚举名 { 常量名1, 常量名2, // ... }; ``` 其中,枚举名是用户自定义的名称,常量名是枚举中每个常量的名称。枚举常量的值默认是从0开始自动递增的,也可以手动指定值。例如: ```c #include <stdio.h> enum Weekday { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }; int main() { enum Weekday today = Tuesday; printf("今天是星期%d\n", today + 1); return 0; } ``` 联合是一种特殊的数据类型,它的成员变量共享同一块内存空间。联合的定义方式如下: ```c union 联合名 { 数据类型 成员名1; 数据类型 成员名2; // ... }; ``` 其中,联合名是用户自定义的名称,成员名是联合中每个成员的名称,数据类型可以是任意C语言的数据类型,但所有成员的大小不能超过联合的大小。例如: ```c #include <stdio.h> union Number { int i; float f; }; int main() { union Number n; n.i = 123; printf("int: %d, float: %.2f\n", n.i, n.f); n.f = 3.14; printf("int: %d, float: %.2f\n", n.i, n.f); return 0; } ``` 以上就是C语言中自定义数据类型中的结构体、枚举、联合的基本用法和注意事项。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值