什么是以下程序的输出?

时间:2014-03-09 07:18:26

标签: c pointers

    int main()
    {
        int i = 10;
        int *p = &i;
        foo(&p);
        printf ("%d ", *p);
        printf ("%d ", *p);
    }

    void foo(int **const p)
    {
        int j = 11;
        *p = &j;
        //Printing the vlue
        printf("%d ", **p);
    }

1 个答案:

答案 0 :(得分:1)

foo返回时,p中的指针main指向执行foo期间存在的局部变量。由于foo已结束,因此取消引用该指针会调用未定义的行为。因此,您的程序可以输出或确实执行任何操作。