Nil 和 Null 的区别?

在<算法:4>里面,空一般用Nil来描述.但是在严蔚敏的<数据结构>的,空被描述为Null.请问二者之间有什么区别?... 在<算法:4> 里面, 空一般用Nil 来描述.
但是在严蔚敏的 <数据结构> 的, 空被描述为Null.
请问二者之间有什么区别?
展开
 我来答
今日有瓜否
2019-07-15 · 每日一瓜,欢迎关注。
今日有瓜否
采纳数:3 获赞数:6429

向TA提问 私信TA
展开全部

一、概念不同

Nil:表示无值,任何变量在没有被赋值之前的值都为nil。

Null:是在计算中具有保留的值。

二、功能不同

Nil:用于区别其他任何值。

Null:用于指示指针不引用有效对象。

三、针对不同

Nil:针对对象,而空对象不是说不占用空间,相当于一个“洗白”,回到初始状态。

Null:针对指针,对对象指针和非对象指针都有效,Null不会占用空间。

扩展资料

Null的编码

在所有现代字符集中,空字符的代码点值为零。在大多数编码中,这被转换为具有零值的单个代码单元。例如在UTF-8中,它是一个零字节。

然而,在修改的UTF-8中,空字符被编码为两个字节:0xC0,0x80。这允许值为零的字节(现在不用于任何字符)用作字符串终结符。

参考资料

百度百科--nil

百度百科--Null

床前明月儿
高能答主

2019-06-19 · 探索生活中的另一种可能
床前明月儿
采纳数:105 获赞数:171989

向TA提问 私信TA
展开全部

一、含义不同

1、Nil:只能作为指针变量的值。 如果1个指针变量的值是NULL值代表.。代表这个指针不指向内存中的任何1块空间。

2、Null:NULL等价于0 NULL是1个宏,代表0。

二、用法不同

1、Nil:OC的类指针用nil。

2、Null:C指针用NULL。

三、原理不同

1、Nil:如果一个类指针的值为nil 代表这个指针不指向任何对象。Person *p1 = nil;

通过p1指针去访问p1指针指向的对象的属性 这个时候会运行报错。

2、Null:如果一个类指针的值为NULL,代表这个指针指向空白的空间,Person *p1 = NULL。通过p1指针去调用对象的方法 运行不会报错 但是方法不会执行没有任何反应。

参考资料来源:百度百科-nil

参考资料来源:百度百科-NULL

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bhtzu
推荐于2017-09-21 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4527万
展开全部
Nil: A null pointer to an Objective-C class.表示对类进行赋空值
NULL: A null pointer to anything else, is for C-style memory pointers. 用于对非对象指针赋空值,比如C指针

Nil 只针对对象,而 空对象 不是说不占用空间,相当于一个“洗白”,回到初始状态。

Null 是 空值,是针对指针的,对对象指针和非对象指针都有效,Null不会占用空间。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式