C语言中NULL是什么意思

 我来答
greystar_cn
2018-03-20 · 知道合伙人软件行家
greystar_cn
知道合伙人软件行家
采纳数:16407 获赞数:17260
本人主要从事.NET C#方向的技术开发工作,具有10多年的各类架构开发工作经验。

向TA提问 私信TA
展开全部
在C语言中,
NULL和0的值都是一样的,但是为了目的和用途及容易识别的原因,NULL用于指针和对象,0用于数值

对于字符串的结尾,使用'\0',它的值也是0,但是让人一看就知道这是字符串的结尾,不是指针,也不是普通的数值
在不同的系统中,
NULL并非总是和0等同,NULL仅仅代表空值,也就是指向一个不被使用的地址,在大多数系统中,都将0作为不被使用的地址,所以就有了类似这样的定义
#define NULL 0
但并非总是如此,也有些系统不将0地址作为NULL,而是用其他的地址,所以说,千万别将NULL和0等价起来,特别是在一些跨平台的代码中,这更是将给你带来灾难。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4f129f4b6
2009-02-27 · 超过29用户采纳过TA的回答
知道答主
回答量:137
采纳率:0%
帮助的人:132万
展开全部
是空指针,指向地址为0的内存,在用法上,常用来表示不存在,
例:if((fp=fopen("stu","rb"))==NULL)
exit(0);
解析:如果打开的这个名为stu的文件不存在,就退出程序;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
66666顺心
推荐于2017-10-05 · TA获得超过819个赞
知道小有建树答主
回答量:393
采纳率:100%
帮助的人:316万
展开全部
空的意思,其实不太好说明白!如果分配内存分配失败如:
#include<stdio.h>
#include<stdlib.h>
int main()
{
char *p;
p=(char*)malloc(10*sizeof(char));
}
如果分配内存分配失败,malloc函数就会返回一个NULL给p
更多追问追答
追问
那NUL呢?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
linzhe13
2008-06-19 · TA获得超过159个赞
知道小有建树答主
回答量:110
采纳率:0%
帮助的人:110万
展开全部
NULL的定义是:
#define NULL (*(void*)0)
简而言之就是一个打包过的0.

while后面应该填写
'\0' != *p
因为按照习惯,*p是一个字符变量.
但是你填
NULL != *p
或者就是
*p
都可以.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2017-06-29
展开全部
C中没有对null预定义,所以null和'\0'区别就大了:null只是个合法的用户标识符,而'\0'是预定义为0的字符常量。如果是NULL和'\0',那它们没有区别,都被预定义为值为0的常量,所以混用它们不会产生任何问题,甚至把用它们的地方都改成0也无妨。一般情况下,NULL用于使指针无效或判断指针是否无效,'\0'则用于字符串结束或判断字符串是否结束。这样规范书写,代码的可读性就大为提高,没有发现有什么别的意义。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式