尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
C/C++ 中空指针 NULL 的坑:为什么 C++11 要引入 nullptr?
在 c 和 c 中分别是这样定义的#ifndefNULL#ifdef__cplusplus#defineNULL0#else#defineNULL((void*)0)#endif#endif知识铺垫C 语言里的 NULL 本质是 (void)0void类型的空指针C 里的 NULL 本质是整数 0宏定义直接替换为 0C 中的 void* 可隐式转换为其他指针类型如int*也可通过强制转换转为 int 型C 中void* 不能隐式转为其他指针类型但可通过reinterpret_cast/C 风格强制转换转为int型非推荐C 和 C 中的 void* 都可以显式类型转换为其他指针类型nullptr 可以隐式类型转换为任意指针类型也可通过reinterpret_cast强制转换为 int 型但不推荐且违背nullptr的设计初衷。voidf1(intx){printf(f(int x));}voidf2(int*ptr){printf(f(int* ptr));}在 C 语言中NULL是(void*)0可隐式转换为int类型因此直接调用f(NULL)会匹配f2函数若想调用f1函数则需要将NULL强制类型转换为int型如f((int)NULL)在 C 中NULL等价于整数0直接调用f(NULL)时编译器会优先匹配接收int参数的f1函数若想调用f2需手动将NULL显式转换为int如f((int*)NULL)而非“无法调用 f2”。这就会导致一个典型问题在 C 中你本意想用空指针 NULL 调用处理指针的f2函数却因它等价于整数 0而错误调用了f1函数。因此 C11 引入了非常重要的关键字 nullptr——它是专门用于表示空指针的常量类型为std::nullptr_t不会被隐式转换为整数类型。用nullptr调用上述函数时会精准匹配f2彻底避免这类调用错误。
RELATED

相关推荐

RT-Thread 图形子系统(Graphic DM)架构解析:从平面(Plane)管理、EDID 到设备驱动接入实战

RT-Thread 图形子系统(Graphic DM)架构解析:从平面(Plane)管理、EDID 到设备驱动接入实战

操作系统嵌入式物联网嵌入式OSRTOS 【免费下载链接】rt-thread RT-Thread is an open source IoT Real-Time Operating System (RTOS). https://rt-thread.github.io/rt-thread/ 项目地址: https://gitcode.com/gh_mirrors/rt/rt-thread 点击查看 免费下载 本篇技术…

📅 2026/10/5 1:58:40
免费 Mac 窗口管理:Loop 从安装到自动化的完整指南

免费 Mac 窗口管理:Loop 从安装到自动化的完整指南

免费 Mac 窗口管理:Loop 从安装到自动化的完整指南 【免费下载链接】Loop Window management made elegant. 项目地址: https://gitcode.com/GitHub_Trending/lo/Loop Loop 是一款免费开源的 Mac 窗口管理工具:装好后按住一个触发键切换布局&…

📅 2026/10/5 1:58:40
在 SAP ABAP 中接入 Amazon Pinpoint:使用 AWS SDK for SAP ABAP 发送邮件、短信与模板消息实战指南

在 SAP ABAP 中接入 Amazon Pinpoint:使用 AWS SDK for SAP ABAP 发送邮件、短信与模板消息实战指南

示例工程教程后端 【免费下载链接】aws-doc-sdk-examples Welcome to the AWS Code Examples Repository. This repo contains code examples used in the AWS documentation, AWS SDK Developer Guides, and more. For more information, see the Readme.md file below. 项目地…

📅 2026/10/5 1:58:40
MORE NEWS

更多资讯

📰

职校管理总是“差点意思“,学工管理系统升级到底能不能破解这些痛点?

✅作者简介:合肥自友科技 📌核心产品:智慧校园平台(包括教工管理、学工管理、教务管理、考务管理、后勤管理、德育管理、资产管理、公寓管理、实习管理、就业管理、离校管理、科研平台、档案管理、学生平台等26个子平台) 。公司所有人员均有多…

📰

D3DCompiler_47.dll丢失怎么办?从DirectX修复到系统文件扫描全攻略

很多朋友应该都遇到过这个报错:双击某个游戏或者软件,结果系统弹窗提示“由于找不到 D3DCompiler_47.dll,无法继续执行代码”,甚至有时候打开某些设计类工具也会这样。第一次见这个提示的人多半会慌,以为是电脑中病毒了…

📰

D3DCompiler_47.dll丢失怎么办?从原理到实操完整修复指南

我最近连续接到好几个朋友求助,全是同一个报错:玩游戏或者打开某个设计软件的时候,系统突然弹窗,说找不到 D3DCompiler_47.dll,程序直接闪退。这个 dll 文件对于不熟悉系统底层的人来说可能很陌生,但它其实…

📰

用DeepSeek翻译PSCAD三相三绕组变压器说明书全流程指南

我用DeepSeek翻译了一份PSCAD三相三绕组变压器元件的手册,文件名就叫3p_3w_tx_pscad说明书。整个过程走下来,最大的感触是:技术文档翻译这事儿,语言能力只占三成,剩下七成是对电力系统仿真模型本身的理解。DeepSeek确实…

📰

SSM学生宿舍管理系统毕设实战:从数据库设计到答辩避坑指南

"SSM四川工商学院学生宿舍管理系统"这个标题,我第一眼看过去就知道是标准的JavaWeb毕设方向。SSM框架——也就是Spring SpringMVC MyBatis——加上一套围绕宿舍管理业务展开的增删改查,这个组合在毕业设计里属于"安全牌"&#xff…

📰

​访谈音视频录音转文字稿实测:四款精准转写软件全面测评

当下调研访谈、人物采访、圆桌座谈等场景愈发普遍,大家完成采访录音、录像后,最核心的需求就是将音视频素材快速、精准转化为规范可用的文字稿件。优质的转写软件,不仅能实现高准确率语音转文字,还能适配访谈多场景需求&#xff0…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬