+ -
当前位置:首页 → 问答吧 → 全局变量是否会自动初始化为0?

全局变量是否会自动初始化为0?

时间:2010-07-30

来源:互联网

  1. int g_a;
  2. int g_b = 0;
  3. int g_c = 1;
  4. char* g_s = "hello";
  5. int main(int argc, char* argv[])
  6. {
  7.         int a;
  8.         char* s = "world";
  9.         static int s_a;
  10.         static int s_b = 0;
  11.         static int s_c = 1;
  12.         return 0;
  13. }
复制代码
符号表如下:
  1. 080495fc g     O .data  00000004              g_c
  2. 08049600 g     O .data  00000004              g_s
  3. 08049604 l     O .data  00000004              s_c.1188
  4. 08049608 g       *ABS*  00000000              __bss_start
  5. 08049608 g       *ABS*  00000000              _edata
  6. 0804960c l     O .bss   00000004              dtor_idx.5701
  7. 08049610 g     O .bss   00000004              g_b
  8. 08049614 l     O .bss   00000004              s_b.1187
  9. 08049618 l     O .bss   00000004              s_a.1186
  10. 0804961c g     O .bss   00000004              g_a
复制代码
可以看到g_a,g_b,s_a,s_b都在bss段,是否说明未初始化的全局变量一定会自动初始化为0,初始化为0的全局变量与未初始化是一样的,C标准有明确规定吗?

作者: tajial   发布时间: 2010-07-30

没有

作者: prolj   发布时间: 2010-07-30

相关阅读 更多

热门下载

更多