• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

enum类型给unsigned char类型赋值之后的结果?

hehung 2018-07-12 浏览量:2194

比如:  aaa是一个enum类型的数据

enum aaa{a,b};

unsigned char ccc;

ccc = b;

请问会是什么结果的?

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 楼主这样写,aaa里面a=0b=1了,enum的规则是,如果没有指定起始次序,那一定是从0开始递增,如果中间指定了常数,则从常数后面累加,如

    enum aaa{
    a,
    b,
    c=10,
    d,
    };
    a=0,b=1,d=11

    • 发布于 2018-07-12
    • 举报
    • 评论 1
    • 1
    • 0
7943603 回复了 donatello:语法清晰,结构正确 回复

其他答案 数量:12
  • 默认,a是0,b是1,剩下的自己想

    • 发布于2018-07-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 经过查阅资料显示,首先枚举是一种数据类型,枚举就是有点想typedef struct 和#define 的结合体的感觉。

    #include <stdio.h>
    /* 定义枚举类型,同时声明该类型的三个变量,并赋初值。它们都为全局变量 */
    enum DAY
    {
        MON
    =1 
        TUE
        WED
        THU
        FRI
        SAT
        SUN 
    }
    yesterday 
    = MON today = TUE tomorrow = WED;
    /* 定义三个具有基本数据类型的变量,并赋初值。它们都为全局变量 */
    int x = 10 y = 20 z = 30;
    void main()
    {
        printf(
    "%d %d %d \n" x y z); //输出:10 20 30
        printf("%d %d %d \n" yesterday today tomorrow); //输出:1 2 3
    }


    这是一个网上简单的枚举类型的小程序,在枚举类型中,如果没有赋值,第一个值默认为0,并依次递加。如果你给第一个值赋值了,那就会在第一个值的基础上依次递加。

    同时枚举本身是一种数据类型,如果你要把值赋给其他变量,整形的需要进行强制转换,其他的我没有看到。

    但是你的问题中,就是默认值的问题,从0开始。还有就是unsigned char类型的变量,你看看需不需要类型转换,还有输出格式。

    还有就是,我一般遇到这种问题就是,VC6.0运行一下,我写单片机不知道对不对的时候我也是先把函数拿去外面实验一下对了再拿到单片机里面。

    加油。​

    • 发布于2018-07-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 枚举类型是常量 也是数值 不能进行赋值  所以默认是多少 获取的就是多少
    • 发布于2018-07-12
    • 举报
    • 评论 0
    • 0
    • 0

  • ccc为1

    枚举类型第一个参数若没有指定(比如题中的a),会默认为0,气候依次加一,所以b是1:

    Y3VYTN}5$X@TA1UTB~R7YIY.png

    • 发布于2018-07-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 就等于1,类型转换没什么问题
    • 发布于2018-07-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 枚举就是顺序宏定义,从0开始一直往下,前提是不赋值,所以ccc=1

    • 发布于2018-07-22
    • 举报
    • 评论 0
    • 0
    • 0

  • ccc得到值1,枚举定义是整形数据,不指定初值,从第一个值为0依次递增
    • 发布于2018-07-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 这里ccc会等于1,enum里面的成员都是递增的
    • 发布于2018-07-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 这样的话ccc的值就为1了,因为enum的值一定是从0开始。

    • 发布于2018-07-30
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

enum类型给unsigned char类型赋值之后的结果?