c++ - c语言中的内存分配
PHPz
PHPz 2017-04-17 11:04:28
0
4
474

这个问题是关于c和c++中对于参数,变量在内存中地址分配的问题。对于以下代码

int main (int argc, char *argv[]) {
  int a;
  int b;
  a = 1;
  b = 2;
  return 0;
}

我的理解是,main函数是通过初始函数调用,main函数实际和其他函数一样。
在初始函数调用main函数后,会先将返回地址压入堆栈,接着将参数压入堆栈。面对函数中定义的局部变量,将会按照定义顺序分配堆栈内存空间。而堆栈是从高地址向低地址生长的,所以我认为&a > &b。
然而,在gdb调试过程中,我发现&b > &a。请问我的理解在哪里错了?

PHPz
PHPz

学习是最好的投资!

全部回复(4)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!