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

定义一个函数如下:
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个回答

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

ZW2949940
ZW2949940 你没明白我的意思啊 初始化不同数据,为什么会造成入口地址的不一样。
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐