pojowsh技术开发之家

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

今天在看《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

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

posted on 2011-08-30 11:10  pojowsh  阅读(1971)  评论(3)    收藏  举报