如果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...

面试题 相关文章推荐
10条PHP编程习惯
May 26 面试题
Java的接口和C++的虚类的相同和不同处
Mar 27 面试题
String是最基本的数据类型吗?
Jun 13 面试题
C语言编程练习
Apr 02 面试题
System.Array.CopyTo()和System.Array.Clone()有什么区别
Jun 20 面试题
广州盈通面试题
Dec 05 面试题
网络通讯中,端口有什么含义,端口的取值范围
Nov 23 面试题
了解AppleShare protocol(AppleShare协议)吗
Aug 28 面试题
Linux中如何用命令创建目录
Jan 12 面试题
Java文件和目录(IO)操作
Aug 26 面试题
Java如何读取CLOB字段
Oct 10 面试题
Boolean b = new Boolean(“abcde”); 会编译错误码
Nov 27 面试题
利用异或运算实现两个无符号数的加法运算
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垃圾回收机制简单说明
2010/07/22 PHP
POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
2010/10/12 PHP
PHP中nowdoc和heredoc使用需要注意的一点
2014/03/21 PHP
PHP使用CURL获取302跳转后的地址实例
2014/05/04 PHP
PHP实现通过中文字符比率来判断垃圾评论的方法
2014/10/20 PHP
ThinkPHP安装和设置
2015/07/27 PHP
用jQuery技术实现Tab页界面之二
2009/09/21 Javascript
浏览器常用高宽的jquery插件
2011/02/24 Javascript
jQuery中获取Radio元素值的方法
2013/07/02 Javascript
jquery的相对父元素和相对文档定位示例代码
2013/08/02 Javascript
JS教程:window.location使用方法的区别介绍
2013/10/04 Javascript
jquery 中的each()跳出循环的语句
2014/05/23 Javascript
Javascript毫秒数用法实例
2015/02/05 Javascript
运行Node.js的IIS扩展iisnode安装配置笔记
2015/03/02 Javascript
javascript记住用户名和登录密码(两种方式)
2015/08/04 Javascript
jQuery实现购物车表单自动结算效果实例
2015/08/10 Javascript
KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机的方法
2016/10/05 Javascript
详解获取jq ul第一个li定位的四种解决方案
2016/11/23 Javascript
总结js中的一些兼容性易错的问题
2017/12/18 Javascript
vue cli构建的项目中请求代理与项目打包问题
2018/02/26 Javascript
完美解决linux下node.js全局模块找不到的情况
2018/05/16 Javascript
一分钟学会JavaScript中的try-catch
2020/12/14 Javascript
Python封装shell命令实例分析
2015/05/05 Python
python脚本监控Tomcat服务器的方法
2018/07/06 Python
python基于socket模拟实现ssh远程执行命令
2020/12/05 Python
浅析canvas元素的html尺寸和css尺寸对元素视觉的影响
2019/07/22 HTML / CSS
美国顶级奢侈茶:Mighty Leaf Tea(美泰茶)
2016/11/26 全球购物
《夕阳真美》教学反思
2014/04/27 职场文书
交通文明倡议书
2014/05/16 职场文书
无保留意见审计报告
2015/06/05 职场文书
2019客服个人年终工作总结范文
2019/07/08 职场文书
关于Javascript闭包与应用的详解
2021/04/22 Javascript
CSS 新特性 contain控制页面的重绘与重排问题
2021/04/30 HTML / CSS
Golang 实现获取当前函数名称和文件行号等操作
2021/05/08 Golang
QT与javascript交互数据的实现
2021/05/26 Javascript
R9700摩机记
2022/04/05 无线电