c - 下面程序的输出是什么?

标签 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);
    }

最佳答案

何时 foo返回,指针pmain指向 foo 执行期间存在的局部变量。自 foo已结束,取消引用该指针会调用未定义的行为。因此你的程序可以输出,或者确实可以做任何事情。

关于c - 下面程序的输出是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22279465/

相关文章:

c - 帮助我理解这段 C 代码

c++ - 从 Sublime Text 2 构建后以 cmd 模式运行程序

c++ - 为什么不同的指针会表现得好像它们共享相同的值?

c++ - 在 C++ 中释放双指针时出错

在 C 中使用指针进行转换

c - 读取数组时访问冲突

c - 如何访问 C 中 .size 指令设置的符号大小

c - printf相关查询

c - 非阻塞模式下读取的部分读取

ios - 从属性指针数组初始化