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

面试题 相关文章推荐
如何将字串String转换成整数int
Feb 21 面试题
类、抽象类、接口的差异
Jun 13 面试题
南京迈特望C/C++面试题
Jul 09 面试题
数组越界问题
Oct 21 面试题
写一个在SQL Server创建表的SQL语句
Mar 10 面试题
南京软件公司的.net程序员笔试题
Aug 31 面试题
.net软件工程师应聘上机试题
Mar 10 面试题
值类型与引用类型有什么不同?请举例说明?并分别列举几种相应的数据类型
Oct 24 面试题
介绍一下Linux内核的排队自旋锁
Aug 27 面试题
用Java语言将一个键盘输入的数字转化成中文输出
Jan 25 面试题
IBatis持久层技术
Jul 18 面试题
J2EE是技术还是平台还是框架
Aug 14 面试题
利用异或运算实现两个无符号数的加法运算
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
《星际争霸2》终章已出 RTS时代宣告终结
2017/02/07 星际争霸
完美解决dedecms中的[html][/html]和[code][/code]问题
2007/03/20 PHP
fgetcvs在linux的问题
2012/01/15 PHP
浅析PHP Socket技术
2013/08/02 PHP
浅谈PHP的反射API
2017/02/26 PHP
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
2017/06/09 PHP
PHP htmlspecialchars() 函数实例代码及用法大全
2018/09/18 PHP
学习YUI.Ext 第七天--关于View&JSONView
2007/03/10 Javascript
Fixie.js 自动填充内容的插件
2012/06/28 Javascript
javascript 日期时间 转换的方法
2013/02/21 Javascript
js获取class的所有元素
2013/03/28 Javascript
使用javascipt---实现二分查找法
2013/04/10 Javascript
ie浏览器使用js导出网页到excel并打印
2014/03/11 Javascript
常常会用到的截取字符串substr()、substring()、slice()方法详解
2015/12/16 Javascript
几种经典排序算法的JS实现方法
2016/03/25 Javascript
jqueryMobile 动态添加元素,展示刷新视图的实现方法
2016/05/28 Javascript
jQuery Tags Input Plugin(添加/删除标签插件)详解
2016/06/20 Javascript
浅谈JavaScript中变量和函数声明的提升
2016/08/09 Javascript
简单实现jQuery上传图片显示预览功能
2020/06/29 jQuery
基于Vue单文件组件详解
2017/09/15 Javascript
AngularJS表单验证功能
2017/10/19 Javascript
vue轻量级框架无法获取到vue对象解决方法
2019/05/12 Javascript
小程序如何自主实现拦截器的示例代码
2019/11/04 Javascript
python实现数据图表
2017/07/29 Python
Python实现翻转数组功能示例
2018/01/12 Python
Django实现组合搜索的方法示例
2018/01/23 Python
Python3中函数参数传递方式实例详解
2019/05/05 Python
python代理工具mitmproxy使用指南
2019/07/04 Python
python如何实现不可变字典inmutabledict
2020/01/08 Python
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
2020/02/27 Python
用CSS3实现Win8风格的方格导航菜单效果
2013/04/10 HTML / CSS
连带责任保证书
2014/04/29 职场文书
服装设计专业自荐信
2014/06/17 职场文书
党员剖析材料范文
2014/09/30 职场文书
Go语言实现Snowflake雪花算法
2021/06/08 Golang
React + Threejs + Swiper 实现全景图效果的完整代码
2021/06/28 Javascript