为什么这个输出在最后printf有一个grabage?

时间:2017-09-14 17:03:19

标签: c pointers dereference

#include <stdio.h>

int main()
{
    int x=10;
    int *p=&x;
    foo(&p);
    printf("%d ",*p);
    printf("%d ",*p);
}
void foo(int** l)
{
    int j=20;
    *l=&j;
    printf("%d ",**l);
}

你能解释为什么输出是[20 20垃圾]? 为什么我得不到20 20 20? foo函数调用后的两个print语句都是相同的。

0 个答案:

没有答案