当前位置: 首页 > news >正文

【C++关键字】指针空值nullptr(C++11)

指针空值nullptr(C++11)

  • C++98中的指针空值
  • C++11中的指针空值

C++98中的指针空值

在学习C语言阶段,由良好的C\C++编程习惯,声明一个变量时最好给该变量一个合适的初始值,否则会出现未初始化的指针,野指针等情况。

	int* p1 = NULL;int* p2 = 0;

NULL实际上是一个宏,在传统的C头文件(stddef.h)中定义

#ifdef NULL
#ifedf _cplusplus
#define NULL 0
#else 
#define NULL ((void* )0)
#endif
#endif

即NULl可能被定义为字面常量0,或者被定义为无类型指针(void*)的常量。

在C++98中,常量0即可以时一个整型数字,也可以时无类型的指针(void*)常量,但是编译器默认情况下将其看成时一个整型常量,如果将其按照指针方式使用,必须对其进行强转。

C++11中的指针空值

而在C++11中,可以使用关键字nullptr来明确表示指针空值。

	int* ptr = nullptr; 

nullptr的引入使得空指针的表达更清晰,准确,且不容易与整型值混淆。

【注意】
1.在使用nullptr表示指针空值时,不需要包含头文件,因为nullptr是C++11作为新关键字引入的。
2.在C++11中,sizeof(nullptr)与sizeof((void*)0)的字节数相同
3.为了提高代码的健壮性,在后续表示指针空值时建议最好使用nullptr。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • python使用gdb进行堆栈查看与调试
  • 【数据挖掘】学习笔记
  • .Net实现SCrypt Hash加密
  • Kafka面试题及答案
  • 【MySQL数据库】:MySQL索引特性
  • 纯理论容器实现的原理
  • 天才程序员周弈帆 | Stable Diffusion 解读(二):论文精读
  • React Hooks 封装可粘贴图片的输入框组件(wangeditor)
  • MPC+WBC多任务优先级控制例子
  • Ubuntu 22.04安装cuda及Pytorch教程
  • 刚刚❗️德勤2025校招暑期实习测评笔试SHL测评题库已发(答案)
  • 快速安装Windows和Ubuntu双系统
  • 同盾中文点选验证码识别方法
  • 【python/pytorch】已解决ModuleNotFoundError: No module named ‘torch‘
  • 【Python入门与进阶】常见问题与解决方法
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • 〔开发系列〕一次关于小程序开发的深度总结
  • Android单元测试 - 几个重要问题
  • Android交互
  • crontab执行失败的多种原因
  • CSS实用技巧
  • Git初体验
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • jquery ajax学习笔记
  • JS专题之继承
  • js作用域和this的理解
  • Kibana配置logstash,报表一体化
  • Logstash 参考指南(目录)
  • Python实现BT种子转化为磁力链接【实战】
  • ReactNativeweexDeviceOne对比
  • 阿里云应用高可用服务公测发布
  • 从零搭建Koa2 Server
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 我这样减少了26.5M Java内存!
  • 项目实战-Api的解决方案
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 2017年360最后一道编程题
  • 仓管云——企业云erp功能有哪些?
  • 交换综合实验一
  • ​插件化DPI在商用WIFI中的价值
  • ‌‌雅诗兰黛、‌‌兰蔻等美妆大品牌的营销策略是什么?
  • # 飞书APP集成平台-数字化落地
  • (二)linux使用docker容器运行mysql
  • (数据结构)顺序表的定义
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .net core docker部署教程和细节问题
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .NET基础篇——反射的奥妙
  • .net经典笔试题
  • .NET框架类在ASP.NET中的使用(2) ——QA
  • .NET轻量级ORM组件Dapper葵花宝典
  • .net网站发布-允许更新此预编译站点