syr7441 发表于 2018-12-7 14:10:11

为啥我的枚举和网上说的不太一样?

如下的代码按理说应该只能赋值0或1才对,为什么实际却不是这样啊?那枚举到底是怎么用的?#include <stdio.h>

enum dota
{
        pa,
        sf
};

int main()
{
        enum dota he;
        he = 8;
        //scanf("%d", &he);

        printf("%d\n", he);

        return 0;
}

Krant5 发表于 2018-12-7 16:01:24

枚举可以赋值Int类型的数据都可以,谁说一定要0,1,了

rencaixiaomeng 发表于 2018-12-7 22:39:15

枚举变量实际上是一个int变量,与int不同的是你可以用不同的名字命名各个数值,然后用这些名字来给枚举变量赋值,让程序更加通俗易懂

syr7441 发表于 2018-12-8 14:03:12

Krant5 发表于 2018-12-7 16:01
枚举可以赋值Int类型的数据都可以,谁说一定要0,1,了

我的意思是我声明了两个枚举元素,系统给他们赋初值为0和1,所以我创建个he难道不是只能赋值0和1吗?

syr7441 发表于 2018-12-8 14:05:14

rencaixiaomeng 发表于 2018-12-7 22:39
枚举变量实际上是一个int变量,与int不同的是你可以用不同的名字命名各个数值,然后用这些名字来给枚举变量 ...

不是,我的意思是我声明了两个枚举元素,系统给他们赋初值为0和1,所以我创建个he难道不是只能赋给他已有的两个值0和1吗?

qq1242009750 发表于 2018-12-9 11:45:49

#include <stdio.h>

enum dota
{
      pa,
      sf
};

int main()
{
      enum dota he;
      he = pa;                //是这样子用哦   一般用法enum的实体对应是声明时候额度宏   he = sf;
      printf("%d\n", he);

      return 0;
}

Krant5 发表于 2018-12-22 09:10:54

syr7441 发表于 2018-12-8 14:03
我的意思是我声明了两个枚举元素,系统给他们赋初值为0和1,所以我创建个he难道不是只能赋值0和1吗?

没这个限制
页: [1]
查看完整版本: 为啥我的枚举和网上说的不太一样?