leetcode中提交链表,最后一个链表即使为null也打印0

这是因为c++与c对null的定义不同,c++中对数据类型的强要求导致c++中对null的定义就是0了;

所以会有null也打印0的情况,遇到这种情况时,要使用删除链表该节点。

NULL不是C语言基本类型,其定义在stddef.h文件中,作为最基本的语言依赖宏存在。但是随着C/C++的发展,很多文件只要涉及了系统或者标准操作都会将NULL作为标准宏声明或者包含。所以几乎包含任意的C++标准头文件都会把这个宏引入。
其定义在cstddef文件中。
其实编译器有内置的NULL类型,比如__null等https://blog.csdn.net/hemingliang1987/article/details/9323009?ops_request_misc=&request_id=&biz_id=&utm_medium=distribute.pc_search_result.none-task-blog-2~all~es_rank~default-1-9323009.pc_search_all_es&utm_term=c%2B%2B%E4%B8%AD%E5%AF%B9null%E7%9A%84%E5%AE%9A%E4%B9%89&spm=1018.2226.3001.4187

看其头文件中的定义也知道了

C语言中的定义方式

typedef NULL (void*)0;

C++中的定义方式
#ifndef  NULL
#ifdef __cplusplus
#define NULL 0
#else
#define ((void*)))
#endif

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值