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


Posted in 面试题 onSeptember 16, 2014
许多程序员认为在所有的指针上下文中都应该使用NULL, 以表明该值应该被看作指针。另一些人则认为用一个宏来定义0, 只不过把事情搞得更复杂, 反而令人困惑。因而倾向于使用未加修饰的0。没有正确的答案。C 程序员应该明白, 在指针上下文中NULL 和0 是完全等价的, 而未加修饰的0 也完全可以接受。任何使用NULL (跟0 相对) 的地方都应该看作一种温和的提示, 是在使用指针; 程序员(和编译器都) 不能依靠它来区别指针0 和整数0。在需要其它类型的0 的时候, 即便它可能工作也不能使用NULL, 因为这样做
发出了错误的格式信息。(而且, ANSI 允许把NULL 定义为((void *)0), 这在非指针的上下文中完全无效。特别是, 不能在需要ASCII 空字符(NUL) 的地方用NULL。如果有必要, 提供你自己的定义
#define NUL ’\0’

Tags in this post...

面试题 相关文章推荐
同步和异步有何异同,在什么情况下分别使用他们?举例说明
Feb 27 面试题
开发中都用到了那些设计模式?用在什么场合?
Aug 21 面试题
类的核心特性有哪些
Jan 01 面试题
介绍java中初始化块的使用
Sep 11 面试题
杭州SQL浙江浙大网新恩普软件有限公司
Jul 27 面试题
西安众合通用.net笔试题
Mar 18 面试题
VLAN和VPN有什么区别?分别实现在OSI的第几层?
Dec 23 面试题
P/Invoke是什么
Jul 31 面试题
介绍一下grep命令的使用
Jun 12 面试题
介绍一下linux文件系统分配策略
Feb 25 面试题
EJB的激活机制
Oct 25 面试题
远程调用的原理
Jul 05 面试题
利用异或运算实现两个无符号数的加法运算
Dec 20 #面试题
如何打印出当前源文件的文件名以及源文件的当前行号
Apr 05 #面试题
如果NULL定义成#define NULL((char *)0)难道不就可以向函数传入不加转换的NULL了吗
Feb 15 #面试题
实现向右循环移位
Jul 31 #面试题
类成员函数的重载、覆盖和隐藏区别
Jan 27 #面试题
在使用非全零作为空指针内部表达的机器上, NULL是如何定义
Nov 09 #面试题
将一个数的从第5位开始的7个数取出,其余位置0
May 26 #面试题
You might like
深入PHP FTP类的详解
2013/06/13 PHP
Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)
2013/06/14 PHP
如何使用PHP实现javascript的escape和unescape函数
2013/06/29 PHP
PHP Filter过滤器全面解析
2016/08/09 PHP
在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
2007/02/15 Javascript
初学JavaScript_03(ExtJs Grid的简单使用)
2008/10/02 Javascript
JavaScript学习笔记之Cookie对象
2015/01/22 Javascript
JQuery+Ajax实现数据查询、排序和分页功能
2015/09/27 Javascript
基于jquery实现轮播特效
2016/04/22 Javascript
vue.js指令和组件详细介绍及实例
2017/04/06 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
2018/10/01 Javascript
浅谈redux, koa, express 中间件实现对比解析
2019/05/23 Javascript
微信小程序 自定义复选框实现代码实例
2019/09/04 Javascript
vue路由权限校验功能的实现代码
2020/06/07 Javascript
使用 UniApp 实现小程序的微信登录功能
2020/06/09 Javascript
js获取url页面id,也就是最后的数字文件名
2020/09/25 Javascript
[02:11]完美世界DOTA2联赛10月28日赛事精彩集锦:来吧展示实力强劲
2020/10/29 DOTA
[49:58]完美世界DOTA2联赛PWL S3 Magma vs DLG 第一场 12.18
2020/12/19 DOTA
使用Python绘制图表大全总结
2017/02/11 Python
Python批量更改文件名的实现方法
2017/10/29 Python
python查找重复图片并删除(图片去重)
2019/07/16 Python
Django框架自定义模型管理器与元选项用法分析
2019/07/22 Python
pytorch masked_fill报错的解决
2020/02/18 Python
Python连接Mysql进行增删改查的示例代码
2020/08/03 Python
python向xls写入数据(包括合并,边框,对齐,列宽)
2021/02/02 Python
使用HTML5的Canvas绘制曲线的简单方法
2015/09/08 HTML / CSS
Looking4Parking美国:全球排名第一的机场停车比较品牌
2019/08/26 全球购物
大学生就业自荐信
2013/10/26 职场文书
努力学习演讲稿
2014/05/10 职场文书
2014年教师节红领巾广播稿
2014/09/10 职场文书
2014国庆65周年领导讲话稿(3篇)
2014/09/21 职场文书
诉讼授权委托书范本
2014/10/05 职场文书
结婚主持人致辞
2015/07/28 职场文书
mysql的Buffer Pool存储及原理
2022/04/02 MySQL
golang操作rocketmq的示例代码
2022/04/06 Golang
Three.js实现雪糕地球的使用示例详解
2022/07/07 Javascript