C++面试题

当前位置: 面试问题网 > C++面试题 > 用缩写的指针比较"if(p)" 检查空指针是否可靠?如果空指针的内部表达不是0会怎么样?

用缩写的指针比较"if(p)" 检查空指针是否可靠?如果空指针的内部表达不是0会怎么样?

当C 在表达式中要求布尔值时, 如果表达式等于0 则认为该值为假, 否则为真。换言之, 只要写出
   if(expr)
   无论“expr” 是任何表达式, 编译器本质上都会把它当if((expr) != 0)处理。
   如果用指针p 代替“expr” 则if(p) 等价于if(p != 0)。
   而这是一个比较上下文, 因此编译器可以看出0 实际上是一个空指针常数, 并使用正确的空指针值。这里没有任何欺骗; 编译器就是这样工作的, 并为、二者生成完全一样的代码。空指针的内部表达无关紧要。
   布尔否操作符! 可如下描述:
   !expr 本质上等价于(expr)?0:1
   或等价于((expr) == 0)
   从而得出结论
   if(!p) 等价于if(p == 0)
   类似if(p) 这样的“缩写”, 尽管完全合法, 但被一些人认为是不好的风格

【用缩写的指针比较"if(p)" 检查空指针是否可靠?如果空指针的内部表达不是0会怎么样?】相关文章

1. 用缩写的指针比较"if(p)" 检查空指针是否可靠?如果空指针的内部表达不是0会怎么样?

2. 怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回 指向字符的指针的函数的指针的数组?

3. 在使用非全零作为空指针内部表达的机器上, NULL是如何定义

4. 在网络中有两台主机A和B,并通过路由器和其他交换设备连接起来,已经确认物理连接正确无误,怎么来测试这两台机器是否连通?如果不通,怎么来判断故障点?怎么排

5. Java面试题:Java类的Main方法如果是Private将会怎么样

6. 如果Session Bean得Remove方法一直都不被调用会怎么样

7. 局部内部类是否可以访问非final变量?

8. 是否可以从一个static方法内部发出对非static方法的调用?

9. 如果NULL和0作为空指针常数是等价的,那我到底该用哪一个

10. 如果在工作中你出现了失误,你会怎么办?

本文来源:https://www.mianshiwenti.com/a13099.html

点击展开全部

《用缩写的指针比较"if(p)" 检查空指针是否可靠?如果空指针的内部表达不是0会怎么样?》

将本文的Word文档下载到电脑,方便收藏和打印

推荐程度:

进入下载页面

﹝用缩写的指针比较"if(p)" 检查空指针是否可靠?如果空指针的内部表达不是0会怎么样?﹞相关内容

其它栏目

也许您还喜欢