我不确定我对C++的理解是否错误.我已经读过1)所有非零值都等于TRUE,零等于FALSE; 2)空指针存储为零.
然而这样的代码:
void ViewCell::swapTiles (ViewCell *vc) {
ViewTile *tmp = vc->tile();
[stuff ...]
if (tmp) addTile(tmp);
}
Run Code Online (Sandbox Code Playgroud)
从解除引用空指针给我一个段错误,但是
if (tmp != 0) addTile(tmp);
Run Code Online (Sandbox Code Playgroud)
工作良好.知道为什么吗?