C语言中NULL是什么意思

如题所述

第1个回答  2018-03-20
在C语言中,
NULL和0的值都是一样的,但是为了目的和用途及容易识别的原因,NULL用于指针和对象,0用于数值

对于字符串的结尾,使用'\0',它的值也是0,但是让人一看就知道这是字符串的结尾,不是指针,也不是普通的数值
在不同的系统中,
NULL并非总是和0等同,NULL仅仅代表空值,也就是指向一个不被使用的地址,在大多数系统中,都将0作为不被使用的地址,所以就有了类似这样的定义
#define NULL 0
但并非总是如此,也有些系统不将0地址作为NULL,而是用其他的地址,所以说,千万别将NULL和0等价起来,特别是在一些跨平台的代码中,这更是将给你带来灾难。
第2个回答  2009-02-27
是空指针,指向地址为0的内存,在用法上,常用来表示不存在,
例:if((fp=fopen("stu","rb"))==NULL)
exit(0);
解析:如果打开的这个名为stu的文件不存在,就退出程序;
第3个回答  推荐于2017-10-05
空的意思,其实不太好说明白!如果分配内存分配失败如:
#include<stdio.h>
#include<stdlib.h>
int main()
{
char *p;
p=(char*)malloc(10*sizeof(char));
}
如果分配内存分配失败,malloc函数就会返回一个NULL给p追问

那NUL呢?

也是空的意思

追答

不是!这个百度一下前人有回答!我就不打了!

追问

谢了

里面的NUL说明的对吗

也是空

本回答被提问者采纳
第4个回答  2008-06-19
NULL的定义是:
#define NULL (*(void*)0)
简而言之就是一个打包过的0.

while后面应该填写
'\0' != *p
因为按照习惯,*p是一个字符变量.
但是你填
NULL != *p
或者就是
*p
都可以.
第5个回答  2017-06-29
C中没有对null预定义,所以null和'\0'区别就大了:null只是个合法的用户标识符,而'\0'是预定义为0的字符常量。如果是NULL和'\0',那它们没有区别,都被预定义为值为0的常量,所以混用它们不会产生任何问题,甚至把用它们的地方都改成0也无妨。一般情况下,NULL用于使指针无效或判断指针是否无效,'\0'则用于字符串结束或判断字符串是否结束。这样规范书写,代码的可读性就大为提高,没有发现有什么别的意义。
相似回答