| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 602 人关注过本帖
标题:关于枚举的问题
只看楼主 加入收藏
w365724453
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-6-25
收藏
 问题点数:0 回复次数:3 
关于枚举的问题
我对枚举(enum)一直就搞不明白
有一个例子
#include<stdio.h>
typedef enum
{
BLACK,
RED,
WHITE
} colors;

int main()
{
colors aVault;
for(aVault=BLACK;aVault<=WHITE;aVault++)
{
printf("%d\n",aVault);
}
return(0);
}
我用visual C++ 6.0编译时编译器提示如下错误:
error C2676: binary '++' : 'colors' does not define this operator or a conversion to a type acceptable to the predefined operator
我把colors aVault 改为int aVault后 就行了
我不太明白了 colors aVault不就把 aVault定义成枚举型吗,再赋一个枚举值 为什么不行呢

顺便再问一下 枚举(enum)和联合(union)有什么具体用途吗 具体举个例子。
不禁感激
搜索更多相关主题的帖子: aVault 枚举 WHITE colors 
2007-11-14 14:08
万兽无缰
Rank: 1
等 级:新手上路
威 望:1
帖 子:296
专家分:0
注 册:2007-8-27
收藏
得分:0 
为什么发两张一样的帖子?

女朋友问我想怎么死~~~
             我说我想"爽死"
2007-11-14 14:54
行文
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2007-11-2
收藏
得分:0 

枚举是一个被命名的整型常数的集合, 枚举在日常生活中很常见。
例如表示星期的SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY,
SATURDAY, 就是一个枚举。
枚举的说明与结构和联合相似, 其形式为:
enum 枚举名{
标识符[=整型常数],
标识符[=整型常数],
...
标识符[=整型常数],
} 枚举变量;
如果枚举没有初始化, 即省掉"=整型常数"时, 则从第一个标识符开始, 顺
次赋给标识符0, 1, 2, ...。但当枚举中的某个成员赋值后, 其后的成员按依次
加1的规则确定其值。
例如下列枚举说明后, x1, x2, x3, x4的值分别为0, 1, 2, 3。
enum string{x1, x2, x3, x4}x;
当定义改变成:
enum string
{
x1,
x2=0,
x3=50,
x4,
}x;
则x1=0, x2=0, x3=50, x4=51

结构和联合的区别
结构和联合有下列区别:
1. 结构和联合都是由多个不同的数据类型成员组成, 但在任何同一时刻,
联合中只存放了一个被选中的成员, 而结构的所有成员都存在。
2. 对于联合的不同成员赋值, 将会对其它成员重写, 原来成员的值就不存
在了, 而对于结构的不同成员赋值是互不影响的。
下面举一个例了来加对深联合的理解。
例4:
main()
{
union{ /*定义一个联合*/
int i;
struct{ /*在联合中定义一个结构*/
char first;
char second;
}half;
}number;
number.i=0x4241; /*联合成员赋值*/
printf("%c%c\n", number.half.first, mumber.half.second);
number.half.first='a'; /*联合中结构成员赋值*/
number.half.second='b';
printf("%x\n", number.i);
getch();
}
输出结果为:
AB
6261
从上例结果可以看出: 当给i赋值后, 其低八位也就是first和second的值;
当给first和second赋字符后, 这两个字符的ASCII码也将作为i 的低八位和高八位


我们不是因为失败而放弃,而是因为倦怠而失败。
2007-11-14 16:29
w365724453
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-6-25
收藏
得分:0 
哦 谢了
我点错了 所以不小心发了两个
2007-11-14 18:13
快速回复:关于枚举的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018913 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved