我最近正在做 Leetcode https://oj.leetcode.com/。假设p是指针,有趣的是当我使用
时运行时间不同if(p==NULL)
和
if(!p)
第一个花费的时间少于第二个花费的时间。 它们之间有什么区别吗? 谢谢!
更新:
答案 0 :(得分:4)
我希望所有实现都能为两个版本生成完全相同的编译代码。
NULL
的值为零。并且!p
正在测试p是否为零。所以在这两种情况下,p都被比作零。
我严重怀疑你是否发现两者之间存在性能差异。并且,如果你是,我怀疑其他一些元素在那里发挥作用。
答案 1 :(得分:1)
启用优化程序。调试版本中的C ++性能没有意义。