C语言中NULL是什么意思
17个回答
2018-03-20 · 知道合伙人软件行家
关注
展开全部
在C语言中,
NULL和0的值都是一样的,但是为了目的和用途及容易识别的原因,NULL用于指针和对象,0用于数值
对于字符串的结尾,使用'\0',它的值也是0,但是让人一看就知道这是字符串的结尾,不是指针,也不是普通的数值
在不同的系统中,
NULL并非总是和0等同,NULL仅仅代表空值,也就是指向一个不被使用的地址,在大多数系统中,都将0作为不被使用的地址,所以就有了类似这样的定义
#define NULL 0
但并非总是如此,也有些系统不将0地址作为NULL,而是用其他的地址,所以说,千万别将NULL和0等价起来,特别是在一些跨平台的代码中,这更是将给你带来灾难。
NULL和0的值都是一样的,但是为了目的和用途及容易识别的原因,NULL用于指针和对象,0用于数值
对于字符串的结尾,使用'\0',它的值也是0,但是让人一看就知道这是字符串的结尾,不是指针,也不是普通的数值
在不同的系统中,
NULL并非总是和0等同,NULL仅仅代表空值,也就是指向一个不被使用的地址,在大多数系统中,都将0作为不被使用的地址,所以就有了类似这样的定义
#define NULL 0
但并非总是如此,也有些系统不将0地址作为NULL,而是用其他的地址,所以说,千万别将NULL和0等价起来,特别是在一些跨平台的代码中,这更是将给你带来灾难。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是空指针,指向地址为0的内存,在用法上,常用来表示不存在,
例:if((fp=fopen("stu","rb"))==NULL)
exit(0);
解析:如果打开的这个名为stu的文件不存在,就退出程序;
例:if((fp=fopen("stu","rb"))==NULL)
exit(0);
解析:如果打开的这个名为stu的文件不存在,就退出程序;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
空的意思,其实不太好说明白!如果分配内存分配失败如:
#include<stdio.h>
#include<stdlib.h>
int main()
{
char *p;
p=(char*)malloc(10*sizeof(char));
}
如果分配内存分配失败,malloc函数就会返回一个NULL给p
#include<stdio.h>
#include<stdlib.h>
int main()
{
char *p;
p=(char*)malloc(10*sizeof(char));
}
如果分配内存分配失败,malloc函数就会返回一个NULL给p
更多追问追答
追问
哦
那NUL呢?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
NULL的定义是:
#define NULL (*(void*)0)
简而言之就是一个打包过的0.
while后面应该填写
'\0' != *p
因为按照习惯,*p是一个字符变量.
但是你填
NULL != *p
或者就是
*p
都可以.
#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'则用于字符串结束或判断字符串是否结束。这样规范书写,代码的可读性就大为提高,没有发现有什么别的意义。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询