ZW2949940
ZW2949940
采纳率0%
2016-02-23 08:43

局部变量和局部变量数组的初始化,分别在哪里完成

定义一个函数如下:
test()
{
char a;
char b[10];
}
编译后test的入口地址假设为0x5000;

改写后
test()
{
char a=0;
char b[10];
}
编译后test的入口地址也为0x5000;

但是这样改写后:
test()
{
char a;
char b[10]={0};
}
编译后test的入口地址变为了0x500A;

为什么会有这样的区别,数据和char变量的初始化不一样吗?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • caozhy 从今以后生命中的每一秒都属于我爱的人 5年前

    入口地址和局部变量放在不同的地方,一个是放在代码区里,一个是放在数据区的堆栈里。两者没有关系。

    点赞 评论 复制链接分享

相关推荐