这是因为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