c – 在同一个函数中引用超出范围的局部变量是否可以?

前端之家收集整理的这篇文章主要介绍了c – 在同一个函数中引用超出范围的局部变量是否可以?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在这段代码中,我引用了局部变量b,即使它超出了范围.但我是从同一个函数中做到的,所以它可能仍在堆栈中,对吧?我运行程序并且它工作但我想知道它是否可以保证在所有实现上工作.
#include <iostream>

void main()
{
    int* a;
    {
        int b = 5;
        a = &b;
    }
    std::cout << *a;
}

解决方法

不,这不能保证工作.一旦内部范围退出,a就会悬空,因此任何对它的解除引用都会导致未定义的行为,并且不会保证任何内容.

猜你在找的C&C++相关文章