指针,此代码如何工作?

时间:2018-05-10 20:31:37

标签: pointers

int j = 10;

void f() { 
    int *i; 
    i = &j;
    *i = 7;
    i = (int *) malloc(sizeof(int)); 
    *i = j; 
    j = j + 5; 
    printf("%d %d", *i, j);
}

记下函数f将输出的两个值

我无法完全理解指针是如何工作的

所以这是我对代码的解释

 int j = 10;

J被分配到内存中的值10并且具有地址,例如200

  int *i;

声明指针

   i = &j;

我的价值现在是200

  *i = 7

* i的值是7

  i = (int *) malloc(sizeof(int))

不太明白上面的代码在做什么,但我认为它将变量i赋给数组中整数的大小?

  *i = j

* i指向j的地址或j的值

   j = j + 5

j的值(我不知道是什么)+ 5

谢谢

0 个答案:

没有答案