【linux C语言开发】有关enum枚举类型的一个测试程序

今天在看《linux C编程一站式学习》时,看到第7章结构体第3节,看到一个enum的程序范例,自己编程序测试时发现了一个问题,如下:

enum coordinate_type { RECTANGULAR = 1, POLAR };//定义一个全局枚举类型

struct complex_struct {int RECTANGULAR;}z;//定义一个全局结构体变量

int main(void)

{

enum coordinate_type y;//定义一个枚举

int RECTANGULAR=y;

printf("%d %d\n", RECTANGULAR, z.RECTANGULAR);

return 0;

}

这段程序的输出是:134513721 0

作一点小小的改动,将枚举变量y变成全局变量:

enum coordinate_type { RECTANGULAR = 1, POLAR }y;//定义一个全局枚举变量

struct complex_struct {int RECTANGULAR;}z;//同上

int main(void)

{

int RECTANGULAR=y;

printf("%d %d\n", RECTANGULAR, z.RECTANGULAR);

return 0;

}

这段程序的输出是:0 0

有没有人可以解释输出这个结果的原因呢?

原文地址:https://www.cnblogs.com/hust_wsh/p/2159314.html