当没有使用赋值运算符时,if 语句如何更改变量?
How can an if statement change a variable, when there's no assignement operator used?
我有一个动态队列,所以我想检查头指针是否指向某物。所以我这样做:
if (mHeadPtr = NULL)
return false;
在执行之前指针不为空(这也是它不进入“return false”行的原因),但不知何故之后它是空的,我不知道为什么。
如果我改为检查变量是否不为空,它可以正常工作。
if (mHeadPtr != NULL)
std::cout << "yay!" << std::endl;
else
return false;
if 语句怎么会改变它只应该读取的变量?
对于比较,您应该使用 ==
而不是 =
。通过使用单个 =
,您不会比较变量的值,而是将 NULL 分配给它。
我有一个动态队列,所以我想检查头指针是否指向某物。所以我这样做:
if (mHeadPtr = NULL)
return false;
在执行之前指针不为空(这也是它不进入“return false”行的原因),但不知何故之后它是空的,我不知道为什么。
如果我改为检查变量是否不为空,它可以正常工作。
if (mHeadPtr != NULL)
std::cout << "yay!" << std::endl;
else
return false;
if 语句怎么会改变它只应该读取的变量?
对于比较,您应该使用 ==
而不是 =
。通过使用单个 =
,您不会比较变量的值,而是将 NULL 分配给它。