当前位置:首页 > 杂谈 > 正文内容

C语言中NULL究竟是不是0 等问题?-c语言里面的null

2024-06-18 07:57:18TONY杂谈153

C语言空指针是NULL,NULL的值不需要是0。但C++空指针必须是0值。

C++作者为了支持模版泛型编程,强行规定所有类型都必须有一个0值,而且规定了指针0值就是空指针。是的,C++中不应该使用NULL,应该使用0。

C语言中NULL究竟是不是0 等问题?-c语言里面的null

0值确实是0值,但0值也是有类型的,0指针,有0整数。而在具体题主所说的地方需要一个指针,所以那个地方的0就是指针。0指针理论上代表指向地址0的指针。

当然,C语言没有这么规定,没有规定NULL的具体值,所以可以使用任意值表示NULL。

对于同时支持C++的编译器,为了让C++与C语言代码兼容,往往会将NULL定义为0值,这样才能兼容C++规定空指针必须为0值的规定。

对于一些纯C编译器来说,有可能会设定NULL为一个非零的任意值,比如-1或者0xffffffff之类都有可能。

至于0值能不能访问,这也是平台相关的。对于x86平台来说0地址恰好是个不能访问的地址,所以空指针设定为0恰好就不能访问,这样也还算方便。不过对于其它平台而言,0值也可以是能访问的地址。

C语言中,NULL是个常量,该指针可以是任意值,对NULL指针的访问会造成什么结果,大概是未定义的。

而C++语言中NULL被定义为0,所以访问NULL等同于访问0地址。

“C语言中NULL究竟是不是0 等问题?-c语言里面的null” 的相关文章

电讯报:利物浦申请推迟与沃特福德的开球时间,被英超拒绝(英超利物浦队)

电讯报:利物浦申请推迟与沃特福德的开球时间,被英超拒绝(英超利物浦队)

直播吧10月5日讯《每日电讯报》报道,利物浦近期曾提出申请,希望将目前定于当地时间10月16日中午12点30分(北京时间19点30分)开场的联赛推迟至晚上7点45开打,以让队内的巴西国脚能够有机会参赛,但该申...

淘宝、盒马都在做的“消消乐”小游戏,适合绝大部分商家!-盒马消消乐规则

淘宝、盒马都在做的“消消乐”小游戏,适合绝大部分商家!-盒马消消乐规则

操作简单、即时反馈、魔性音效,阶段性晋升,是“消消乐”的魅力所在。 没有对战的激烈,也没有养成的乐趣,仅靠简单的“消除”玩法,“消消乐”类游戏却长久占据最受女性用户喜欢的TOP1。 添加图片注释,不超过 140 字(可选)地铁通勤、等餐时间、午休时间,各种碎片化的时间,都可...

发现历史上最性感的五位太后,最后一个是你想不到的!(古代最美的太后)

纵观中国历史,拥有权力的皇后不在少数,但有了权力,人的欲望就无限大,女人也不能幸免。尤其是独守空室的国王,在获得权力后,会做出一些不合理的事情来满足自己的欲望,比如“偷鱼”。1.宣太后宣太后是秦惠文王的妻子和秦昭襄王的母亲。宣太后入秦之前,就与义渠王有过渊源。秦惠文王死后,更是无礼。秦国太后与游牧民...

江西赣县遭遇罕见冰雹袭击,多地受灾

江西赣县遭遇罕见冰雹袭击,多地受灾

【江西赣县讯】近日,江西省赣县地区突降罕见冰雹,给当地带来严重灾害。据初步统计,冰雹袭击导致多地农作物受灾、房屋受损,当地政府和救援机构迅速行动,展开救援工作。据了解,冰雹袭击发生在当地时间下午,持续时间长达数十分钟。冰雹直径最大达到2厘米,持续半小时,密度极大,给当地带来了严重的灾害。不少地区的农...

物业第三方南京诚平—江苏省物业管理条例之“前期物业管理”-南京银城物业工资怎么样

物业第三方南京诚平—江苏省物业管理条例之“前期物业管理”-南京银城物业工资怎么样

原标题:物业第三方南京诚平—江苏省物业管理条例之“前期物业管理” 小区物业选聘—南京诚平物业服务评估第三方,“小区治理议事厅” 第四章 前期物业管理 第三十一条 新建住宅物业实行前期物业管理。 在业主、业主大会选聘物业服务企业之前,前期物业管理由建设单位...

阳台可种的7味中草药,养眼又养生!-阳台种什么花草

阳台可种的7味中草药,养眼又养生!-阳台种什么花草

很多人都有种一些花花草草的习惯,既可以美化环境,又可以怡情。其实除了普通的花花草草外,也可以在阳台上种一点中草药,漂亮又养生,一举两得。今天就介绍一下常用的可以食用,又可以观赏的7味中草药:   1、紫苏   紫苏是多年生草本植物,适应性强,对土样要求不高,非常...