首页

文章

C语言中NULL是什么意思

发布网友 发布时间:2022-04-19 10:02

我来回答

16个回答

懂视网 时间:2022-03-31 18:43

c语言null的意思和0的值是一样的,用于指针和对象。

  

  c语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点,在程序设计中备受青睐。C语言编译器普遍存在于各种不同的操作系统中,例如Microsoft Windows、macOS、Linux、Unix等。C语言的设计影响了众多后来的编程语言,例如C++、Objective-C、Java、C#等。C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速,工作量小、可读性好,易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%到20%。因此,C语言可以编写系统软件。

热心网友 时间:2022-03-31 15:51

在C语言中,NULL和0的值都是一样的,但是为了目的和用途及容易识别的原因,NULL用于指针和对象,0用于数值。对于字符串的结尾,使用'\0',它的值也是0,但是让人一看就知道这是字符串的结尾,不是指针,也不是普通的数值。
拓展资料:
关于NULL的使用

编程工作中有一类比较容易犯的错误--指针地址未进行正确的更新赋值就加以使用,这往往会造成很严重的后果(对内存区进行错误的涂抹)。所以一个良好的习惯是,当一个指针的工作稍事休息,先把它赋值为NULL,待到再度使用时,重新对其赋值以及进行指针类型转化。
前面说到"NULL指针无法再进行任何数据访问",其实是视编译器功能而定的。0位置指向的是程序起始,对于不同的编译器,NULL指针的操作结果是不同的:有些是不准读写,有些是只读,甚至读写都允许。编译器是人定的。

热心网友 时间:2022-03-31 17:09

C语言NULL定义,定义如下:
#undef NULL
#if defined(__cplusplus)
#define NULL 0
#else
#define NULL ((void *)0)
#endif
所以我觉得,如果一个指针被赋予NULL,应该就相当于这个指针执行了0x0000这个逻辑地址,但是C语言中0x0000这个逻辑地址用户是不能使用的(有些人说是因为0x0000没有映射到物理地址,也有人说是因为0x0000映射到的地址是操作系统用于判断野指针的,我也不太懂,总之就是用户不能使用啦),所以当你试图取一个指向了NULL的指针的内容时,就会提示段错误,听着有点绕,看程序:
int *node=NULL;
int a=0;
a=*node;
printf("%d\n",a);
由于node执行的是NULL,也就是逻辑地址0x0000,而这个地址用于是不能访问的,所以编译器提示段错误。

热心网友 时间:2022-03-31 18:43

在头文件 中 定义的一个常量 NULL=0;

用于指将指针 悬空(不指向任何位置)楼上的指向0内存不对的.
int *p=NULL;
NULL是个好东西,给一出生的指针一个安分的家

NULL不是被定义为0,就是被定义为(void *)0,这两种值几乎是相同的。当程序中需要一个指针时(尽管编译程序并不是总能指示什么时候需要一个指针),一个纯粹的零或者一个void指针都能自动被转换成所需的任何类型的指针。

NULL总是等于0吗?
对这个问题的回答与“等于”所指的意思有关。如果是指“与。比较的结果为相等”,例如:
if(/* ... */)
{
p=NULL;
}
else
{
p=/* something else */;
}
/* ... */
if(p==0)
那么NULL确实总是等于0,这也就是空指针定义的本质所在。

如果是指“其存储方式和整型值。相同”,那么答案是“不”。NULL并不必须被存为一个整型值0,尽管这是NULL最常见的存储方式。在有些计算机中,NULL会被存成另外一些形式。

如果想知道NULL是否被存为一个整型值0,可以(并且只能)通过调试程序来查看空指针的值,或者通过程序直接将空指针的值打印出来(如果将一个空指针强制转换成整类型,那么=所看到的很可能就是一个非零值)。

热心网友 时间:2022-03-31 20:35

在C语言中,
NULL和0的值都是一样的,但是为了目的和用途及容易识别的原因,NULL用于指针和对象,0用于数值

对于字符串的结尾,使用'\0',它的值也是0,但是让人一看就知道这是字符串的结尾,不是指针,也不是普通的数值
在不同的系统中,
NULL并非总是和0等同,NULL仅仅代表空值,也就是指向一个不被使用的地址,在大多数系统中,都将0作为不被使用的地址,所以就有了类似这样的定义
#define NULL 0
但并非总是如此,也有些系统不将0地址作为NULL,而是用其他的地址,所以说,千万别将NULL和0等价起来,特别是在一些跨平台的代码中,这更是将给你带来灾难。

热心网友 时间:2022-03-31 22:43

NULL 就是一个特殊的指针值, 其实本质是一个宏
#define NULL (void *)0
也就是0值, 强制转成了指针。
用来表示一个指针非法。 所以在初始化的时候经常用NULL来初始化。
由于是非法指针, 所以对这个指针取值(*操作)会导致程序崩溃。 必须要先指向一个有效空间才可以。

热心网友 时间:2022-04-01 01:07

C中没有对null预定义,所以null和'\0'区别就大了:null只是个合法的用户标识符,而'\0'是预定义为0的字符常量。如果是NULL和'\0',那它们没有区别,都被预定义为值为0的常量,所以混用它们不会产生任何问题,甚至把用它们的地方都改成0也无妨。一般情况下,NULL用于使指针无效或判断指针是否无效,'\0'则用于字符串结束或判断字符串是否结束。这样规范书写,代码的可读性就大为提高,没有发现有什么别的意义。

热心网友 时间:2022-04-01 03:49

  Null,本意是"空的;元素只有零的"意思。计算机中通常表示空值,无结果,或是空集合。
  NULL指针是一个无类型指针,并且值为0。一个指针,拥有2个属性--地址值和指针类型。两者的作用是:1,地址值标识变量的首地址(32位系统下指针的地址值占4字节);2,指针类型告诉编译器,应该怎样进行接下来的数据访问(int型数组和float型数组是不同的;数组访问与结构体访问也是不同的;等等)。

热心网友 时间:2022-04-01 06:47

空的意思,其实不太好说明白!如果分配内存分配失败如:
#include<stdio.h>
#include<stdlib.h>
int main()
{
char *p;
p=(char*)malloc(10*sizeof(char));
}
如果分配内存分配失败,malloc函数就会返回一个NULL给p

热心网友 时间:2022-04-01 10:01

可以的

null别定义为

#define NULL ((void *)0)

'\0'是字符,ASCii是0

热心网友 时间:2022-04-01 13:33

NULL的定义是:
#define NULL (*(void*)0)
简而言之就是一个打包过的0.

while后面应该填写
'\0' != *p
因为按照习惯,*p是一个字符变量.
但是你填
NULL != *p
或者就是
*p
都可以.

热心网友 时间:2022-04-01 17:21

是空指针,指向地址为0的内存,在用法上,常用来表示不存在,
例:if((fp=fopen("stu","rb"))==NULL)
exit(0);
解析:如果打开的这个名为stu的文件不存在,就退出程序;

热心网友 时间:2022-04-01 21:25

NULL, 大写,有这样一个定义: #define NULL 0 你能看到? 看VC里边应该能看到如果没有小写null,你也可以这样: #define null 0 这样就可以,呵呵。

热心网友 时间:2022-04-02 01:47

在头文件 中 定义的一个常量 NULL=0;
用于指将指针 悬空(不指向任何位置)楼上的指向0内存不对的.
int *p=NULL;

热心网友 时间:2022-04-02 06:25

#define NULL ((void*)0)

其值是0,但意义是空指针

'\0'的值也是0,但意义是字符串结束符

热心网友 时间:2022-04-02 11:19

反正NULL就是0,一般用来形容指针是空的.
至于你说的NULL == '\0' , 只是因为'\0'也是数值0而已
土地入股的定义 ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 网络诈骗定罪标准揭秘 “流水不争先”是什么意思? mc中钻石装备怎么做 为什么我的MC里的钻石块是这样的?我想要那种。是不是版本的问题?如果是... 带“偷儿”的诗句 “君不见巴丘古城如培塿”的出处是哪里 带“奈何”的诗句大全(229句) 里翁行()拼音版、注音及读音 带“不虑”的诗句 “鲁肃当年万人守”的出处是哪里 无尘防尘棚 进出口报关流程,越详细越好。谢谢大家指教。 双线桥不是看化合价升多少就标多少的吗?为什么CL2+2KI=2KCL+I2中I失... 出师表高锰酸钾有画面了吗 2021年幼儿园新学期致家长一封信 电脑屏幕一条黑线怎么办? 销售代理商销售代理商的特点 商业代理商业代理的特征 如何看微信有没有开通微众银行 为什么微众没有开户 微众银行怎么开户 微众银行APP开户流程是什么? 唐古拉山海拔唐古拉山海拔是多少 怎么看待取消跳广场舞的人的退休金 如何选购新鲜的蓝田水柿? 恭城水柿柿树作用 创维洗衣机使用教程 创维全自动洗衣机怎么使用 自动开门器 狗羊属相婚姻相配吗 3岁的小孩不会说话怎么办 3岁孩子不会说话,应该挂什么科? 3岁小孩不会说话正常吗 鹿茸炖乌鸡怎么做? 新型冠状肺炎吃什么药可以预防 冰箱上电后一直响 C语言中NULL是如何定义的? null到底是什么意思?什么梗? null和空值,零有什么区别? C语言中是NULL什么意思? null什么意思? 微信里说null什么意思? 系统提示null什么意思? [null][null]是什么意思? null什么意思? NULL是什么? win7系统怎么限制gust用户不能上网呢 win7怎么设置guest用户权限 鞭炮或简笔画的图片 春节鞭炮简笔画 鞭炮的简笔画是什么颜色的 鞭炮的简笔画图片 怎么画鞭炮?急急急急急急急! 鞭炮怎么简笔画 简便的放鞭炮图画。 怎么画鞭炮 C/C++中,NULL和null的区别是什么? null中文是什么意思? Win7系统 我是受限用户,如何摆脱受限,或破解管理用户密码? 形容很自信的成语 如何限制win7管理员权限或者提升普通用户的权限 在没有妇产科医生的古代,古人是如何生孩子的? 王者荣耀英语名字是wrzy吗? wzry引以为傲的玩的人多为什么被lol全方 wzry转区多久 王者荣耀芈月怎么玩 芈月出装技巧 “王者荣耀与英雄联盟”的角色对应的有哪些? 王者荣耀怎么玩好坦克 坦克职业玩法解读 MOBA手游那么多,为什么大家都玩《王者荣耀? 求王者荣耀坦克战士通用五级铭文 王者荣耀女娲怎么连招 女娲连招技巧 王者荣耀我把游戏好友删了四个月了怎么找回? 王者荣耀后羿怎样出招 帮我算算王者荣耀从贵族1到贵族6总共要花多少钱? 王者荣耀唐三藏技能介绍。 王者荣耀亚瑟逆风局出装怎么选择?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com