class object
{
public:
object(){}
~object(){}
};
int main()
{
object *p = NULL;
{
object a;
p = &a;
if(p){
cout << "not NULL\n";
}
else{
cout << "NULL ptr\n";
}
}
if(p){
cout << "not NULL\n";
}
else{
cout << "NULL ptr\n";
}
return 1;
}
结果:
不为NULL 不为空
我不知道为什么会这样,我认为它是“ not NULL”和“ NULL”。调用object
的析构函数时,p
指向什么?堆栈内存如何工作?