即使将指针分配为NULL,为什么指针的指针对象的大小也不为零?

Ram*_*ran 3 c++ null pointers c++11

我想知道为什么即使我们将指针分配为NULL,指针指向的对象的大小也不为零,有人可以解释吗?

在g ++ 4.8,ubuntu 14.04上编译

Foo * foo=NULL;
cout<<"Size of pointed object of foo:"<<sizeof(*foo)<<endl;  //why it is not zero
Run Code Online (Sandbox Code Playgroud)

niv*_*led 5

sizeof是一个编译时指令。因此,没有运行时检查来查看指针是否实际指向真实对象。根本不检查指针。在这种情况下,该指令由编译器替换为该类型的字节大小Foo