#include <iostream>
int main()
{
int *ptr = NULL;
// It does not crash
*ptr; --------> Point-1
//But this statment crashed
std::cout<<"Null:"<<*ptr<<"\n"; ------> Point-2
return 0;
}
在上面的代码中,当我注释掉“Point-2”时,代码不会崩溃。但是当我取消注释“Point-2”时,代码就会崩溃。由于ptr为空指针,理论上Point-1也应该崩溃。如果我有错,请纠正我。有人能解释一下为什么只是简单地解引用指针时代码没有崩溃吗?