c ++危险指针练习?

yai*_*air 1 c++ pointers

#include <stdio.h>


int *pPointer;

void SomeFunction()
{
    int nNumber;
    nNumber = 25;    

    // make pPointer point to nNumber:

    pPointer = &nNumber;
}

void main()
{
    SomeFunction(); // make pPointer point to something

    cout<< "Value of *pPointer: "<< *pPointer <<endl;
}
Run Code Online (Sandbox Code Playgroud)

我被告知使用这样的指针是危险的,任何人都可以解释为什么它是危险的,什么是"安全"的方式来编写这段代码?25会一直以这种方式打印到屏幕上吗?如果没有那么为什么?

izo*_*ica 6

在变量范围之外使用指向局部变量的指针总是很危险的.它调用未定义的行为.