c语言枚举类型枚举常量

枚举常量到底可不可以赋值啊?书上的话不是前后矛盾了?求高手详解... 枚举常量到底可不可以赋值啊?书上的话不是前后矛盾了?求高手详解 展开
 我来答
yshcpu
2013-03-19 · TA获得超过563个赞
知道小有建树答主
回答量:618
采纳率:0%
帮助的人:452万
展开全部
“给枚举变量赋值时,不能使用整数,workday=2 就是错误的”这句话是指你书中说明(1)中的话,这条语句是在定义之后(即大括号外)出现的。
“但是为什么上面可以black=5“这句话中的black=5是在定义的括号中出现的(属于枚举定义语句),枚举类型必须在定义的时候就赋值。只在此赋值一次。出现在定义外的语句都被认作是对枚举常量的重新赋值。而枚举常量在定义之外只能被当作表达式的右值,赋给其他变量,而不能出现在等号的左侧,因为这样相当于改变常量的值,自然是不正确的。
追问

(4)

追答
它的意思是说,既然你已经定义了枚举类型,然后在程序中声明了一个枚举变量,而这个变量的取值是可以变化的,但是只能是你枚举类型定义中所存在的那几种,因为那几种常量在你定义的时候已经确定为常数了,所以你给这个枚举变量赋值后,它自然就成为了有实际值的变量,当然你也可以改变它的值,赋给它其他的那几种,但是因为如果只是将整型数赋给它,编译系统会认为你把整型数而非枚举类型常量赋给它,即使该整型数出现在枚举定义的时候表达式的右侧。自然,如果该整型数根本就没出现在枚举定义括号中,那就更是错误的了。
kaixingui2012
推荐于2017-12-16 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6453万
展开全部
在定义枚举型变量时,以对枚举常量进行数值规定(规定哪个常量是多少值),这就是所谓的赋值!

除去定义操作之外,任何地方在使用枚举常量时,都不能对其进行赋值操作了,它就相当于一个固定数值了,不能再变。
更多追问追答
追问
他下面举例说,

给枚举变量赋值时,不能使用整数,workday=2 就是错误的,
但是为什么上面可以black=5呢?
追答
black=5 是在定义时的操作

workday=2在哪里呢?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hcaihfj
2013-03-19
知道答主
回答量:3
采纳率:0%
帮助的人:4043
展开全部
常量 的定义是不可改变 枚举常量 你不fuzhi 电脑怎么判别他的量呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wsxrfvyhn258
2013-03-19
知道答主
回答量:28
采纳率:0%
帮助的人:7.7万
展开全部
按照书上的意思定义的时候即赋值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式