给定以下代码片段:
#include <iostream>
using namespace std;
int *pPointer;
int func()
{
int num;
num = 25;
pPointer = #
}
int main()
{
func();
cout << *pPointer << endl;
cout << *pPointer << endl;
return 0;
}
如果我重复以下行,谁能告诉我:
cout << *pPointer << endl;
cout << *pPointer << endl;
为什么我收到 25(如预期)但下一个值是 0(NULL)?
int=25 的值不会仍然保留在堆栈中吗?cout 是怎么改变 pPointer 的值的?我是否遗漏了我对范围和堆栈的理解?(我是一个 Java 人,所以这很令人惊讶)。