c中不同函数的不同变量的相同地址

时间:2014-06-09 09:08:21

标签: c++ c variables pointers memory-address

在打印' X'的地址和价值时在函数foo1和foo2中Y的地址和值,为什么它为两个函数显示相同的值?

#include <stdio.h

void foo1(int xval)
{
  int x;
  x = xval;
  /* print the address and value of x here */
}

void foo2(int dummy)
{
  int y;
  /* print the address and value of y here */
}

int main()
{
  foo1(7);
  foo2(11);
  return 0;
} 

该计划的输出是

Address of X is: 65518

X的值是:7

Address of Y is: 65518

Y的值是:7

1 个答案:

答案 0 :(得分:1)

这是因为它们是在堆栈上创建的,在每次函数调用后都会解开。所以他们 在相同的内存地址创建。