首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言(枚举类型

C语言中的枚举类型常年跑龙套当配角,不受待见,这当然是有其个人原因的。今天来个小知识,看看枚举为什么那么衰,也顺便看看怎么用。 我们先来回忆一下为什么需要枚举,枚举究竟是个什么东东?...这么看来,枚举是一种挺好玩也挺有用的东西,但是在C语言中怎么就不受待见了呢?...原因是C语言只提供了一种阉割版的枚举,以上两大目的在C中实质上都是没有实现的,也就是说,在C语言中,实际情况是这样的: color = blue; // 正确,此时color就是5 color = 5;...此时color就是blue color = 8; // 正确,8是整型,跟枚举完全没有任何区别 color = red + orange; // 正确,完全等价于 color = 1+2 你看明白了吧,C语言中的所谓枚举其实就是个坑爹货...枚举的真正实现,在C++中才有实现。

1.8K30
您找到你想要的搜索结果了吗?
是的
没有找到

C语言——枚举类型

一,什么是枚举类型 简单来说,枚举类型就是可以让我们给整数值分配有意义的名字,从而使得代码更易读、易维护 二,枚举类型的定义和变量的声明 1,如何定义和声明 枚举类型的定义和变量的声明方式也与结构体和联合体相似...如果我们在创建枚举变量时,为未给成员进行初始化赋值,则C语言会自动赋值 遵循:默认从0开始,依次增1 如果只有前几个值,那么后面未被赋值的成员也会被自动赋值,遵循依次增1 例子一(不赋值)...存在同名的枚举成员 enum color1 { red, yellow, blue }; enum color2 { red, black, white }; 三,对变量进行赋值 1,使用成员赋值 ⭐C语言中的枚举变量通常只能被赋值为枚举类型中定义的成员...blue = 3 }; int main() { enum color a, b, c; a = red; b = yellow; c = blue; return 0; } 2,强制类型转化...blue = 3 }; int main() { enum color c; c = (enum color)10; //强制类型转换 printf("%d\n", c); return 0

10310

C语言之字符类型

文章目录 字符类型(char) 1. 基本介绍 2. 基本案例 3. 字符类型使用细节 4. 字符类型本质探讨 5. ASCII 码介绍 6. ASCII码对照表 字符类型(char) 1....基本介绍 字符类型可以表示单个字符,字符类型是 char,char 是 1 个字节(可以存字母或者数字),多个字符称为字符串,在C 语言中 使用 char 数组 表示 字符串,数组不是基本数据类型,而是构造类型...字符类型使用细节 字符常量是用单引号(' ')括起来的单个字符。例如:char c1 = 'a'; char c3 = '9'; C 中还允许使用转义字符‘\’来将其后的字符转变为特殊字符型常量。...可以直接给 char 赋一个整数,然后输出时,会按照对应的 ASCII 字符输出 [97] char 类型是可以进行运算的,相当于一个整数,因为它都对应有 Unicode 码. 案例演示: ?...字符类型本质探讨 字符型 存储到 计算机中,需要将字符对应的码值(整数)找出来 存储:字符’a’——>码值 (97)——>二进制 (1100001)——>存储() 读取:二进制(1100001)——

2.9K20

Android EditText实现输入金额类型详解

前言 众所周知,Android中的editText默认的属性里面是没有金额类型的,所以要实现这个功能我们就必须自己动手丰衣足食。下面话不多说了,来一起看看详细的介绍吧。...首先要知道金额有两部分构成,整数部分和小数部分,要实现只输入数字和小数点很简单。自己查能很容易查到。...而我们知道金额类型的小数部分只能有两位,所以这个方法不合适。 二.设置字符过滤 网上有很多文章都是这样写。...我才发现,用addTextChangedListener来做金额类型的输入挺合适的。虽然也是要自己写算法去解决特殊情况下的问题,但是用起来比第二种方法舒服。 我先贴代码再做解释。...限制小数点后只能输两位 这个判断是判断金额的重点,本来金额小数点后就只能有两位,当然有些人的需求可能是只能有一位,这不要紧,把数字改下就行。

1.5K31

C语言——联合体类型

(即:给联合体其中的一个成员赋值,其他成员的值也会跟着被改变) 二,联合体的声明 1,联合体类型的声明 C语言中联合体类型的定义形式: union 联合体名 { 成员项表列 }; 例如:...(我们定义一个同时由char和int型构成的联合体) union Un { char c; int i; }; (注意:分号不能丢) 2,联合体变量的创建 同结构体变量的创建类似,我们可以在声明联合体类型的同时创建变量...;也可以在声明后,再创建变量 如: (1)先声明联合体类型,再创建变量 #include union Un { char c; int i; }; union Un u1; (...2)在声明联合体类型的同时创建变量 union Un { char c; int i; }u1; 对联合体成员的引用也与对结构体成员的引用相同 三,联合体的特点 1,联合体与结构体的对比 联合体的大部分与结构体相似...类型的大小,难道联合体的大小就是其中最大成员的大小吗?

5810

C语言编程—强制类型转换

强制类型转换是把变量从一种类型转换为另一种数据类型。例如,如果您想存储一个 long 类型的值到一个简单的整型中,您需要把 long 类型强制转换为 int 类型。...请看下面的实例,在 int 中添加一个字符: #include int main() { int i = 17; char c = 'c'; /* ascii 值是...: Value of sum : 116 在这里,sum 的值为 116,因为编译器进行了整数提升,在执行实际加法运算时,把 'c' 的值转换为对应的 ascii 值。...让我们看看下面的实例来理解这个概念: #include int main() { int i = 17; char c = 'c'; /* ascii 值是 99...: Value of sum : 116.000000 在这里,c 首先被转换为整数,但是由于最后的值是 float 型的,所以会应用常用的算术转换,编译器会把 i 和 c 转换为浮点型,并把它们相加得到一个浮点数

20530
领券