ZW2949940
2016-02-23 08:43
采纳率: 0%
浏览 1.6k

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

定义一个函数如下:
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条回答 默认 最新

  • threenewbee 2016-02-23 23:03

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

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题