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


Posted in 面试题 onJanuary 05, 2014
当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) 这样的“缩写”, 尽管完全合法, 但被一些人认为是不好的风格

Tags in this post...

面试题 相关文章推荐
一套PHP的笔试题
May 31 面试题
一套带答案的C++笔试题
Jan 10 面试题
视图的作用
Dec 19 面试题
Ado与Ado.net的相同与不同
Dec 08 面试题
NET程序员上机面试题
May 23 面试题
Windows和Linux动态库应用异同
Jul 28 面试题
mysql有关权限的表都有哪几个
Apr 22 面试题
Weblogic和WebSphere不同特点
May 09 面试题
关键字throw与throws的用法差异
Nov 22 面试题
重写子类方法时,抛出异常的书写注意事项
Oct 17 面试题
Hibernate持久层技术
Dec 16 面试题
WSDL的操作类型主要有几种
Jul 19 面试题
struct和class的区别
Nov 20 #面试题
利用指针变量实现队列的入队操作
Apr 07 #面试题
怎样在程序里获得一个空指针
Jan 24 #面试题
描述内存分配方式以及它们的区别
Oct 15 #面试题
定义一结构体数组表示分数,并求两个分数相加之和
Jun 11 #面试题
空指针到底是什么
Aug 07 #面试题
C++是不是类型安全的
Feb 18 #面试题
You might like
php下用GD生成生成缩略图的两个选择和区别
2007/04/17 PHP
php file_put_contents()功能函数(集成了fopen、fwrite、fclose)
2011/05/24 PHP
ThinkPHP采用实现三级循环代码实例
2014/07/18 PHP
为百度UE编辑器上传图片添加水印功能
2015/04/16 PHP
PHP+Mysql+jQuery中国地图区域数据统计实例讲解
2015/10/10 PHP
WordPress中对访客评论功能的一些优化方法
2015/11/24 PHP
PHP CURL使用详解
2019/03/21 PHP
BOOM vs RR BO3 第二场2.13
2021/03/10 DOTA
jquery api参考 visualjquery 中国线路 速度快
2007/11/30 Javascript
javascript ajax 仿百度分页函数
2013/10/29 Javascript
jquery解析xml字符串示例分享
2014/03/25 Javascript
火狐下input焦点无法重复获取问题的解决方法
2014/06/16 Javascript
js实现具有高亮显示效果的多级菜单代码
2015/09/01 Javascript
原生JS京东轮播图代码
2017/03/22 Javascript
angular ng-click防止重复提交实例
2017/06/16 Javascript
node.js 模块和其下载资源的镜像设置的方法
2018/09/06 Javascript
浅谈关于iview表单验证的问题
2018/09/29 Javascript
Vue组件模板及组件互相引用代码实例
2020/03/11 Javascript
Vue实现点击箭头上下移动效果
2020/06/11 Javascript
nodejs处理tcp连接的核心流程
2021/02/26 NodeJs
Python实现线程池代码分享
2015/06/21 Python
Python中django学习心得
2017/12/06 Python
基于python指定包的安装路径方法
2018/10/27 Python
Original Penguin英国官方网站:美国著名休闲时装品牌
2016/10/30 全球购物
澳大利亚排名第一的在线酒类商店:MyBottleShop
2018/04/26 全球购物
美国电力供应商店/电气批发商:USESI
2018/10/12 全球购物
TOWER London官网:鞋子、靴子、运动鞋等
2019/07/14 全球购物
德国玩具商店:Planet Happy DE
2021/01/16 全球购物
小学毕业家长寄语
2014/01/19 职场文书
企业职业病防治方案
2014/05/29 职场文书
2014年保卫部工作总结
2014/11/21 职场文书
优秀班组申报材料
2014/12/25 职场文书
检察院起诉书
2015/05/20 职场文书
交通事故被告代理词
2015/05/23 职场文书
Python基础之tkinter图形化界面学习
2021/04/29 Python
一文教你快速生成MySQL数据库关系图
2022/06/28 Redis