C语言中NULL究竟是不是0 等问题?-c语言里面的null
C语言空指针是NULL,NULL的值不需要是0。但C++空指针必须是0值。
C++作者为了支持模版泛型编程,强行规定所有类型都必须有一个0值,而且规定了指针0值就是空指针。是的,C++中不应该使用NULL,应该使用0。

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” 的相关文章
全球线上零售TOP10国家中,中国连续七年位居榜首,根据eMarketer数据显示,2021年中国线上零售仍会保持21%的高增长率。其中,直播电商大大缩短了消费链路,这也使得众多实体商家看到了电商产业的好处,纷纷想要入驻抖店,从抖音小店官网如何开店注册呢?这也是很多人关心的问题。...
PubMed作为生物医学检索系统在科研领域受到广泛的关注,因为其免费,登录速度较快,因此成为很多科研人员的常用检索工具。我们在使用PubMed时,检索效率总会有不尽人意的时候,很多新手会觉着PubMed检索效果和百度学术差不多,甚至因为是全英文,在使用时体验还不如百度学术。对于一些进阶用户来说,尽管...
对于企业来说,迈向数字化转型最方便的办法便是使用云服务了,企业云盘便是最经济、划算的产品之一,其功能性远比一般的个人云盘要强大的多,更多的存储空间,更契合企业的功能,更强大的配置,为企业带来更好的良性发展。现在做企业网盘的厂商也越来越多,那么多的云盘中,该怎样选择便宜又好用的一款呢?...
近日,河南周口。晁先生高速上车子没油,从网上付了760元买10升汽油,却只送来7升。因为感觉油价太贵,晁先生到高速服务区后向交警投诉,交警判断其遇上了山寨救援,面对百般抵赖的司机及山寨救援平台,民警发出灵魂拷问:“想钱想疯了吧!你这样不是抢钱吗?”经过一番批评教育...
像我这种人,喜欢读些闲书的,但是又不想买纸书(搬家太累),所以做法都是电子书买完,去DRM,然后打印出来。纸不花钱,墨五六块钱一瓶,能打3、4本书。 一台打印机用了7、8年,小毛病都是自己搞。 今天的毛病是,提示墨水用完了,加完墨还是不能打印,问题就出在我用的不是原装正品墨...
世界知识产权日(The World Intellectual Property Day),由世界知识产权组织于2001年4月26日设立, 并决定从2001年起将每年的4月26日定为"世界知识产权日", 目的是在世界范围内树立尊重知识、崇尚科学和保护知识产权的意识, 营造鼓励知识创新的法律环...