永发信息网

C语言 我是初学者

答案:2  悬赏:30  手机版
解决时间 2021-11-10 20:09
C语言 我是初学者
最佳答案
C语言规定,在定义枚举型时,可以给枚举常量赋初值,方法是在枚举常量的后面跟上“=整型常量”。例如,表示三原色的枚举型可以定义如下:
enum colorl
{red=2,yellow=4,blue=7};
则枚举常量,red的值为2,yellow的值为4,blue的值为7。
1、给变量或数组元素赋值,格式为:枚举型变量或数组元素=同一种枚举型常量名
C语言规定,虽然枚举常量值是0或自然数,但是不能直接将整型常量赋予枚举型变量或数组元素。但是可以通过类型强制转换来赋值,请看下面的程序段。
enum color
{red,yellow,blue}c_l;
cl=yellow;
c_l=1;
c_l=(enum color)l;
重要说明:有少数的C编译系统允许将整型常量直接赋予枚举型变量,例如Turho C。所以使用Turbo C编译系统编译上述程序,其中的语句“c_1=l;”并不会出错。
2、枚举类型倒倒多和宏定义比较、宏和枚举的主要区别是作用的时间和存储形式不同。宏定义是在编译预处理阶段作用的,也就是在编译预处理时,就会进行宏替换,将程序中的所有宏名替换为所定义的常量名,而枚举则是在程序运行之后才起作用的。宏定义不分配内存空间,而枚举常量存储在数据的静态存储区中(这一点一定要注意)。宏只占用代码段的空间,而枚举除了占用代码段空间外,还耗费CPU资源。
全部回答
可以,但只能是在变量声明的赋值格式中存在,程序中不可。如果你不赋值,编译系统会自动按照0,1,2,...顺序分配整数,你赋值后,之后的变量仍然会顺序递增,比如:
enum myselect
{ A, //系统会自动分配0,以后在程序中用A系统就自动替换成0
B, //自动分配1
C=4, //如果不赋值会自动分配2,现在强制分配了4
D, //自动分配5,前一个枚举数据值加1
E=7, //强制7
F=10, //强制10
G //自动11
};
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
锻造配方都哪里有卖
丹凤眼眼影眼妆教程?
何某于2014年参加了某知名综艺节目,何某是谁
闽西共青希望小学(龙岩永定县)地址在什么地方
晚上九点多小区里有人吹乐器能投诉吗
CS106中文版不能玩,需要CDKey。谁能帮解决下
纯碱为什么不能用橡胶塞
d7100拍摄虫子的时候对焦不到是什么问题?
钓鱼时防止小鱼闹窝有哪些方法
我是74年7月农历出生,请问年后公司那天开业
求两个圆部分重叠的面积? 已知圆半径为300毫
书院小学(龙岩永定县)地址有知道的么?有点事
谁能把这两个字翻译成英文,“慕欣”,不要mo
中川小学(龙岩永定县)地址有知道的么?有点事
莱阳棋院地址在什么地方,我要处理点事!
推荐资讯
花开不为自身艳,只怪春来风月天,什么意思
十三岁的孩子偷了75块钱?算犯罪吗?
程序是否有问题,求6~5000内的亲密数对
看似动力不强的宝马却为何拥有更优异的性能表
1、2、5、14、()、()
兄弟玩《新梦幻之城》为什么我充值后没发现背
甘肃版袁大头存世量有多少?
要定青山不放松,立根原在破岩中是什么植物
瑜伽英雄式坐法是什么样
aj鞋子买回来有一股刺鼻味道这个鞋子是真的假
有谁是齐齐哈尔市甘南县的!
宁河县芦苔有那些工厂招工
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?