[C++11] nullptr 和 NULL

2023-11-05

在工作中,避免产生“野指针”最有效的方法,是以下两点:
1. 在定义指针的同时完成初始化操作,即便该指针的指向尚未明确,也要将其初始化为空指针。
2. 在delete释放该指针后,对该指针赋值为空指针。

C++11 新增关键字 nullptr ,专门用来初始化空类型指针,nullptr并非整型类别,甚至也不是指针类型,但是能转换成任意指针类型。
而 NULL 在 C++ 中的定义  #define NULL 0 ,并且 C++ 中不能将void *类型的指针隐式转换成其他指针类型。

eg:

#include <iostream>
using namespace std;

void test_null(void* v) {
  cout << "void*" << endl;
}

void test_null(int num) {
  cout << num << endl;
}

int main() {
  test_null(NULL);        // 输出 0
  test_null(27);          // 输出 27
  test_null((void*)NULL); // 输出 void*
  test_null(nullptr);     // 输出 void*

  return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[C++11] nullptr 和 NULL 的相关文章

随机推荐

  • 服务器系统与环境变量,什么叫Web服务器的环境变量

    服务器环境变量的详细说明 本机ip request servervariables remote addr br 服务器名 Request ServerVariables SERVER NAME br 服务器IP Request Serve
  • 疫情期间,程序员开展副业的时候怎么和客户沟通呢?记住下面这几条,是你有一桶金的第一步!

    不同的身份 一直对自由职业报有期待 虽然现在还是一颗螺丝钉 我想 为了更好的创造自己的价值 我可否用自己的技能做一些东西呢 于是 工作之外 我开始寻找接单做项目 现在 这种程序员接单的平台有很多 国内国外都有 可是万事开头难 有这种渠道不一
  • Java 虚拟机内部类静态字段的初始化与访问

    要明白 Java 虚拟机如何访问类的静态变量 首先要明白下面几个问题 虚拟机内部是如何表示一个 Java 类的 静态变量存储在哪里 虚拟机如何访问到这些静态变量 这篇文章也从这围绕这三个问题展开 并结合 OpenJDK 中 HotSpot
  • [LeetCode]62. 不同路径

    62 不同路径 难度 中等 一个机器人位于一个 m x n 网格的左上角 起始点在下图中标记为 Start 机器人每次只能向下或者向右移动一步 机器人试图达到网格的右下角 在下图中标记为 Finish 问总共有多少条不同的路径 示例 1 输
  • vuepress2.0使用教程(10)-从零开始搭建自定义模板

    百家饭团队开发的百家饭OpenAPI平台是用vuepress2 0搭建的 搭建的时候不知道2 0还处在beta状态 所以导致后来踩了一些坑 使用过程中vuepress2 0也从2 0 0 beta 18升到了2 0 0 beta 48 有很
  • JS逆向新技术--JSRPC

    声明 本文章中所有内容仅供学习交流 不可用于任何商业用途和非法用途 否则后果自负 如有侵权 请联系作者立即删除 由于本人水平有限 如有理解或者描述不准确的地方 还望各位大佬指教 介绍 JSRPC意思就是远程调用js代码 全称 Remote
  • tinyhttpd代码注释

    J David s webserver This is a simple webserver Created November 1999 by J David Blackstone CSE 4344 Network concepts Pro
  • Tomcat的简单使用

    简单使用Tomcat 1 Tomcat Web容器 1 1安装 1 2 Tomcat文件夹功能讲解 3 启动Tomcat 4 发布网页 1 Tomcat Web容器 Tomcat是用来发布前端站点或者后端程序的 1 1安装 Tomcat 的
  • 正点原子Imx6ULL+LCD屏,竖屏使用时如何修改开机进度条

    正点原子给出的修改开机进度条 在使用时LCD是基于横版情况设定的 那对于像手机一样竖屏时 会发现不合适 因此对此进行了研究 首先准备图片 将logo alientek png logo psplash bar png文件旋转90度 旋转后如
  • Parallels Desktop 18提示“由于临界误差,不能启动虚拟机”

    Parallels Desktop最近更新到了18 2 0版本 但是许多小伙伴更新之后遇到了 由于临界误差 不能启动虚拟机 这样的问题 接下来小编就为大家带来解决PD虚拟机提示临界误差的解决方法 出现这个问题很有可能是Prl disp se
  • Xml中SelectSingleNode用法详解(转)

    最常见的XML数据类型有 Element Attribute Comment Text Element 指形如
  • redis sentinel搭建以及在jedis中使用

    一 redis主从搭建 1 搭建redis master 1 gt redis安装 mkdir p usr local webserver redis 安装目录 cd usr local webserver redis wget http
  • Java使用POI操作Excel合并单元格

    合并单元格的方法 指定 4 个参数 起始行 结束行 起始列 结束列 然后这个区域将被合并 CellRangeAddress region new CellRangeAddress startRow endRow startCol endCo
  • 某站webpack打包JS逆向,keyCipher、keySM2Cipher参数分析

    文章目录 前言 一 抓包分析 二 参数解析 1 加密定位 2 参数分析 三 响应解密 1 加密定位 总结 前言 今天来水一篇文章 某站webpack打包类型 登录 数据解密参数keyCipher keySM2Cipher 本文章仅供学习研究
  • 11. 实战:bs4法抓取网页图片并保存到本地文件夹

    前言 我们通过前面几节的学习已经了解到bs4模块对于我们抓取网页的方便之处 也通过一个实例实践了抓取某网站菜价 本节我们以某图片网为例 链接放评论区 实现抓取唯美壁纸栏目的内容并保存到本地文件夹 目标 思路 1 获取所有子页面链接地址 2
  • 数据库系统之函数依赖

    Functional Dependencies 什么是函数依赖 如何发现关系表中的函数依赖关系 函数依赖关系与对象的类 功能依赖与关联 函数依赖性的派生 阿姆斯特朗公理 Armstrong axioms 其他的推理规则 References
  • python如何学习(三)

    最近开始整理python的资料 博主建立了一个qq群 希望给大家提供一个交流的同平台 78486745 一 第一个Python程序 HelloWorld python的第一个程序也从hello world开始吧 usr bin env py
  • linux ipv6内核编译,linux ipv6内核设置

    linux ipv6内核设置 进入 proc sys net ipv6 conf all forwarding Type BOOLEAN 在两个接口之间进行global IPv6 forwarding 数据包转发 IPv6 当中您不能单独控
  • 使用 tf-idf 提取关键词

    tf idf 的简要介绍 tf term frequency 某个关键词在整篇文档中出现的频率 idf inverse document frequency 逆文档频率 某个词在所有文档中出现的频率 tf 公式 t f i j n i j
  • [C++11] nullptr 和 NULL

    在工作中 避免产生 野指针 最有效的方法 是以下两点 1 在定义指针的同时完成初始化操作 即便该指针的指向尚未明确 也要将其初始化为空指针 2 在delete释放该指针后 对该指针赋值为空指针 C 11 新增关键字 nullptr 专门用来