我不确定我对C++的理解是否是错误的。我读过1)所有非零值相当于TRUE,零相当于FALSE; 2)空指针被存储为零。C++零(空)指针应该返回false吗?
然而,这样的代码:
void ViewCell::swapTiles (ViewCell *vc) {
ViewTile *tmp = vc->tile();
[stuff ...]
if (tmp) addTile(tmp);
}
给我提领,从一个空指针段错误,但
if (tmp != 0) addTile(tmp);
工作正常。任何想法为什么?
只需在旁边注释,空指针不需要在硬件中表示为零,但编译器将这种复杂因素考虑在内。 – 2009-08-08 07:36:11