为什么这个简短的C程序的结果是“3 2”?

时间:2015-08-31 11:19:01

标签: c enums

以下是源代码:

    #include <stdio.h>

    enum coordinate_type{ RECTANGULAR = 1,POLAR };

    int main(void)
    {
        int RECTANGULAR;
        printf("%d %d\n",RECTANGULAR,POLAR);
        return 0;
    }

为什么结果如下:

3 2

1 个答案:

答案 0 :(得分:5)

您正在重新定义主要功能中的RECTANGULAR。它被初始化为“随机”值,在这种情况下它是3,但它可能是其他任何东西。

由于枚举的定义方式,POLAR将其值设为2。

尝试在main中重新定义RECTANGULAR变量以查看不同的输出。