自动变量,函数后的指针仍可获取

时间:2018-11-24 21:04:15

标签: c pointers variables

在Windows下使用gcc进行编译,其代码如下:

Screen

我得到这个结果:

#include <stdio.h>

int f(int ** iptr)
{
  printf("f initial value: %i\n",**iptr);
  int a =10;
  *iptr = &a;
  printf("f changed value: %i\n",**iptr);

  return 0;
}

int main()
{
  int * p = 0;
  int i =7;
  p = &i;

  printf("main initial value: %i\n",*p);

  f(&p);

  printf("main after f value under p: %i\n",*p);
  printf("again value under p: %i\n",*p);
  printf("value of i: %i\n",i);

  return 0;
}

任何想法,为什么会这样?

谢谢!

P.S。而且该网站的格式抱怨说,我在这里没有进行足够的对话...所以,成为社交...:)

0 个答案:

没有答案