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

-4 c enums

这是源代码:

    #include <stdio.h>

    enum coordinate_type{ RECTANGULAR = 1,POLAR };

    int main(void)
    {
        int RECTANGULAR;
        printf("%d %d\n",RECTANGULAR,POLAR);
        return 0;
    }
Run Code Online (Sandbox Code Playgroud)

为什么结果如下:

3 2
Run Code Online (Sandbox Code Playgroud)

pet*_*mlm 5

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

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

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