小编Xu *_*ong的帖子

为什么两个不同的枚举枚举常量具有相同的整数值?

我知道如果我像这样定义枚举工作日:

enum weekday {
    MON,
    TUE,
    WED,
    THU,
    FRI,
};
Run Code Online (Sandbox Code Playgroud)

然后,MON默认情况下内部等于0,TUE为1,WED为2 ......

但如果我这样定义它:

enum weekday {
    MON,
    TUE = 0,
    WED,
    THU,
    FRI,
};
Run Code Online (Sandbox Code Playgroud)

然后这两个MONTUE将得到的0值.

系统如何在内部区分MON和TUE?我的意思是,如果我宣布这样的事情:

enum weekday today = 0;
Run Code Online (Sandbox Code Playgroud)

那么今天MON还是TUE?或者,从哲学上讲,两者兼而有之?

c enums

45
推荐指数
4
解决办法
5万
查看次数

将int转换为float:如何完成

我是C编程语言的新手,我想问一个问题.

整数我在这里铸造浮动然后f(不知何故)成功代表5.0:

int i = 5;
float f = i;   //Something happened here...
Run Code Online (Sandbox Code Playgroud)

但是,如果我们尝试这种方法:

int i = 5;
float f = *(float *)&i;
Run Code Online (Sandbox Code Playgroud)

f不会得到5.0,因为它以"float的方式"解释存储在i中的位.那么编译器在第一种情况下实际上做了多少魔术呢?这似乎是一项非常努力的工作......有人可以指明吗?谢谢.

c c++ casting type-conversion

8
推荐指数
2
解决办法
2万
查看次数

标签 统计

c ×2

c++ ×1

casting ×1

enums ×1

type-conversion ×1