我理解双感叹号的作用(或者我认为我理解),但我不确定它是如何在随机对象上定义的。例如下面的代码片段:
Assignment *a;
if (!getAssignment(query, a))
return false;
hasSolution = !!a;
if (!a)
return true;
我如何知道双感叹号会产生什么值?换句话说,它总是转换为 true 吗?错误的 ?或者您可以为其定义一个行为,例如执行一个方法来确定结果(对象如何知道在这种情况下如何行动)?由于所有这些感叹号的发生,我对这段代码有点困惑。任何解释都值得赞赏。
希望我说清楚了,谢谢。
a
是一个指针。在 C++ 中,nullptr
被定义为无效指针。!pointer
变成nullptr
指针指向true
和一个非nullptr
指针指向false
. !boolean
turns true
into false
and false
into true
。它将永远有效。
!(!a)
是一种有用的思考方式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)