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

面试题 相关文章推荐
我的applet原先好好的, 一放到web server就会有问题,为什么?
May 10 面试题
几道数据库的概念性面试题
May 30 面试题
数据库什么时候应该被重组
Nov 02 面试题
武汉世纪畅想数字传播有限公司 .NET笔试题
Jun 13 面试题
杭州信雅达系统.NET工程师面试试题
Feb 08 面试题
.NET初级开发工程师面试题(包括Javascript)
Aug 22 面试题
什么是Connection-oriented Protocol/Connectionless Protocol面向连接的协议/无连接协议
Sep 06 面试题
盛大二次面试题
Nov 18 面试题
override和overload的区别
Mar 09 面试题
介绍一下Make? 为什么使用make
Dec 08 面试题
几个判断型的面试题
Jul 03 面试题
过滤器的用法
Oct 08 面试题
利用异或运算实现两个无符号数的加法运算
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
第十二节 类的自动加载 [12]
2006/10/09 PHP
Yii2搭建后台并实现rbac权限控制完整实例教程
2016/04/28 PHP
在PHP 7下安装Swoole与Yar,Yaf的方法教程
2017/06/02 PHP
让回调函数 showResponse 也带上参数的代码
2007/08/13 Javascript
一个关于jqGrid使用的小例子(行按钮)
2011/11/04 Javascript
浅谈javascript中的作用域
2012/04/07 Javascript
NodeJs中的非阻塞方法介绍
2012/06/05 NodeJs
jquery.ui.draggable中文文档(原文翻译)
2013/11/15 Javascript
JavaScript数值转换的三种方式总结
2014/07/31 Javascript
jquery实现侧边弹出的垂直导航
2014/12/09 Javascript
jQuery中clearQueue()方法用法实例
2014/12/29 Javascript
JavaScript语言对Unicode字符集的支持详解
2014/12/30 Javascript
跟我学习javascript的this关键字
2020/05/28 Javascript
JavaScript——DOM操作——Window.document对象详解
2016/07/14 Javascript
js判断数组key是否存在(不用循环)的简单实例
2016/08/03 Javascript
bootstrap学习使用(导航条、下拉菜单、轮播、栅格布局等)
2016/12/01 Javascript
React学习之事件绑定的几种方法对比
2017/09/24 Javascript
angular内置provider之$compileProvider详解
2017/09/27 Javascript
JavaScript 跨域之POST实现方法
2018/05/07 Javascript
vue-router二级导航切换路由及高亮显示的实现方法
2019/07/10 Javascript
javascrpt密码强度校验函数详解
2020/03/18 Javascript
JS实现进度条动态加载特效
2020/03/25 Javascript
微信小程序实现音乐播放页面布局
2020/12/11 Javascript
[52:36]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
深入解析Python中函数的参数与作用域
2016/03/20 Python
python爬虫使用cookie登录详解
2017/12/27 Python
Python断言assert的用法代码解析
2018/02/03 Python
Python numpy实现二维数组和一维数组拼接的方法
2018/06/05 Python
python查找重复图片并删除(图片去重)
2019/07/16 Python
Python3操作Excel文件(读写)的简单实例
2019/09/02 Python
python通过nmap扫描在线设备并尝试AAA登录(实例代码)
2019/12/30 Python
python通过移动端访问查看电脑界面
2020/01/06 Python
纯CSS3制作的简洁蓝白风格的登录模板(非IE效果更好)
2013/08/11 HTML / CSS
2015年小学生新年寄语
2014/12/08 职场文书
小学体育跳绳课教学反思
2016/02/16 职场文书
《游戏王:大师决斗》新活动上线 若无符合卡组可免费租用
2022/04/13 其他游戏