C++ nullptr 和NULL的区别

news2024/11/15 9:34:48

个人主页:Jason_from_China-CSDN博客

所属栏目:C++系统性学习_Jason_from_China的博客-CSDN博客

概念概述:

在C++中,nullptrNULL 都是用来表示空指针,但它们之间有一些重要的区别:

nullptr和NULL之间的区分

  1. nullptr

    • nullptr 是C++11标准引入的一个关键字,用于表示空指针。
    • 它是类型安全的,意味着它必须被转换为一个指针类型才能使用,这可以防止一些类型错误。
    • nullptr 可以被隐式转换为任何指针类型,包括对象指针、函数指针、成员指针等。
    • 使用 nullptr 可以提高代码的可读性和可维护性。
  2. NULL

    • NULL 是一个宏,通常在 <cstddef> 或 <cstdlib> 头文件中定义为 0 或 (void*)0
    • 它不是类型安全的,因为它本质上是一个整数常量,可以被赋值给任何指针类型,这可能导致类型错误。
    • NULL 可以被隐式转换为任何指针类型,但这种隐式转换可能会隐藏类型错误。

最本质的区别就是:所以为了解决C++引入了新的关键字,nullptr(这里是不能转化成整形的)

nullptr的使用

#include<iostream>
//nullptr(空指针)(不能转化为整形)和null(可以转化为整形)
void _null(int x)
{
	cout << "_null(int x)=" << x << endl;

}
void _nullptr(int* x)
{
	cout << "_nullptr(int x)=" << x << endl << endl;
}
int main()
{

	//nullptr(空指针)(不能转化为整形)和null(可以转化为整形)
	//int a1 = nullptr; 
	cout << "nullptr(空指针)(不能转化为整形)和null:" << endl;
	_null(NULL);
	_nullptr(nullptr);

	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2134256.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ceph简介

ceph存储简要概述&#xff1a; 通过将文件分解成固定大小对象&#xff0c;然后存放于pool中&#xff0c;每个pool中 可包含多个pg&#xff0c;每个pg中又可包含多个osd 通过crush算法 最终数据落盘到osd中去。 一、ceph 删除osd 步骤1 修改osd数据操作权重值 ceph osd crush r…

【贪心算法】贪心算法

贪心算法简介 1.什么是贪心算法2.贪心算法的特点3.学习贪心的方向 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&#x1f603; 1.什么是贪心算法 与其说是…

C++ | Leetcode C++题解之第401题二进制手表

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<string> readBinaryWatch(int turnedOn) {vector<string> ans;for (int i 0; i < 1024; i) {int h i >> 6, m i & 63; // 用位运算取出高 4 位和低 6 位if (h < 12 &&a…

如何在算家云搭建MindSearch(智能搜索)

一、MindSearch简介 MindSearch是一款由上海人工智能实验室书生浦语团队提出了 MindSearch&#xff08;思索&#xff09;框架&#xff0c;旨在提供高效、精准的信息检索服务&#xff0c;能够在 3 分钟内主动从 300 网页中搜集整理有效信息&#xff0c;总结归纳&#xff0c;解决…

[“1“, “2“, “3“].map(parseInt)结果

parseInt 的用法 parseInt 是 JavaScript 中的一个全局函数&#xff0c;用于将字符串转换为整数。它的基本语法如下&#xff1a; parseInt(string, radix);string&#xff1a;要解析的字符串。radix&#xff08;可选&#xff09;&#xff1a;字符串的基数&#xff0c;可以是 …

初级练习[2]:Hive SQL查询汇总分析

目录 SQL查询汇总分析 成绩查询 查询编号为“02”的课程的总成绩 查询参加考试的学生个数 分组查询 查询各科成绩最高和最低的分 查询每门课程有多少学生参加了考试(有考试成绩) 查询男生、女生人数 分组结果的条件 查询平均成绩大于60分的学生的学号和平均成绩 查询至少…

学习笔记 韩顺平 零基础30天学会Java(2024.9.13)

P545 TreeMap源码解读 TreeSet的k-v其中的v是一个静态的对象&#xff0c;但是TreeMap的v是可以变化的 TreeMap使用默认构造器取出的顺序和添加的顺序是不一样的&#xff0c;但是有构造器实现了Comparator接口的匿名内部类&#xff0c;可以按顺序排序 P546 Collections工具类1 P…

不入耳蓝牙耳机排行榜第一名是哪个品牌?解密最值得购买的五大品牌!

​到了2024年&#xff0c;开放式耳机无疑成为了耳机市场的宠儿。它们的优势在于&#xff0c;不仅佩戴舒适&#xff0c;还能在保护听力的同时&#xff0c;让你保持对周围环境的警觉&#xff0c;这对于爱好户外探险的朋友来说&#xff0c;无疑是一个巨大的安全加分项。作为一名资…

【初识Linux】Linux下基本指令

01. ls 指令 语法&#xff1a; ls [选项][目录或文件] 功能&#xff1a;对于目录&#xff0c;该命令列出该目录下的所有子目录与文件。对于文件&#xff0c;将列出文件名以及其他信息。 常用选项&#xff1a; -a 列出目录下的所有文件&#xff0c;包括以 . 开头的隐含文件。 -…

AI与艺术的碰撞:当机器开始创作,创造力何在?

一、引言 艺术与创造力的定义及重要性 艺术&#xff0c;作为人类情感和思想的表达形式&#xff0c;涵盖了绘画、音乐、文学等多种领域。它不仅是文化传承的载体&#xff0c;更是人类想象力和创造力的结晶。创造力&#xff0c;则是推动艺术发展和社会进步的关键力量&#xff0…

高性能编程:无锁队列----MsgQueue代码实践

目录 概述 代码结构 1. 头文件解析 (msgqueue.h) 2. 实现文件解析 (msgqueue.c) 核心功能解析 2.1 创建队列 (msgqueue_create) 2.2 放入消息 (msgqueue_put) 2.3 获取消息 (msgqueue_get) 2.4 交换队列 (__msgqueue_swap) 2.5 阻塞与非阻塞模式 2.6 销毁队列 (msgq…

GPT Prompt

Reference https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-the-openai-apihttps://platform.openai.com/docs/guides/prompt-engineeringbilibili 8分钟系统学习提示工程,别再说大模型还不够聪明!Prompt Engineering,提示词,Few…

深兰科技董事长陈海波应出席“香港大学国际科创大赛”

近日&#xff0c;以“人工智能与智能制造”为主题的“香港大学国际科创大赛——知识转化论坛(沪港场)”在上海市普陀区隆重举行&#xff0c;众多来自人工智能与智能制造领域的专家学者与企业高管齐聚一堂&#xff0c;共话人工智能、智能制造与新质生产力的深度融合、最新进展以…

第 11篇 Helm 部署 RabbitMQ

文章目录 RabbitMQ 简介Helm ChartChart 版本选择自定义 values.yaml部署效果 参考相关博文 &#x1f680; 本文内容&#xff1a;在 Helm 中部署 RabbitMQ。 RabbitMQ 简介 ⭐ RabbitMQ&#xff1a;开源、通用消息代理&#xff0c;为一致性、高可用消息场景设计&#xff0c;包…

想引领潮流,得保持动销方案创新!

在竞争激烈的市场中&#xff0c;动销方案创新至关重要。 创新动销方案能提升品牌知名度与美誉度&#xff0c;吸引消费者关注&#xff0c;提高曝光度&#xff1b;还可增加销售额与市场份额&#xff0c;激发购买兴趣&#xff1b;更能增强企业竞争力&#xff0c;在同质化竞争中脱…

TiDB 扩容过程中 PD 生成调度的原理及常见问题丨TiDB 扩缩容指南(一)

导读 作为一个分布式数据库&#xff0c;扩缩容是 TiDB 集群最常见的运维操作之一。本系列文章&#xff0c;我们将基于 v7.5.0 具体介绍扩缩容操作的具体原理、相关配置及常见问题的排查。 通常&#xff0c;我们根据当前资源状态来决定是否需要调整 TiKV 节点的规模&#xff0…

Nacos 2.x为什么新增了RPC的通信方式?

Nacos 2.X 在 1.X 的架构基础上&#xff0c;通信层通过 gRPC 和 Rsocket 实现了长连接 RPC 调用和推送能力。主要是为了改善 Nacos 在大规模集群环境下的性能和稳定性。 同时新增一个链接层&#xff0c;用来将不同类型 Request 请求&#xff0c;将来自不同客户端的不同类型请求…

JVM面试真题总结(九)

文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 描述CMS垃圾收集的工作过程 CMS&#xff08;Concurrent Mark Swee…

代码随想录训练营 Day60打卡 图论part10 SPFA算法 Bellman-Ford 之判断负权回路 Bellman-Ford 之单源有限最短路

代码随想录训练营 Day60打卡 图论part10 一、Bellman_ford 队列优化算法&#xff08;又名SPFA&#xff09; 例题&#xff1a;卡码94. 城市间货物运输 I 题目描述 某国为促进城市间经济交流&#xff0c;决定对货物运输提供补贴。共有 n 个编号为 1 到 n 的城市&#xff0c;通过…

Monster Sound FX Pack 2 怪物恶魔野兽声效包

这是受最新电影和游戏启发而创作的一系列超凡怪兽音效中的第二卷。Monster Sound FX Pack 2 包含精心设计的声音,充满个性,为听众带来新的体验。这些声音经过专业设计,是严肃的声音设计师和游戏开发者的必备品! 发现声音非常适合龙、野兽、外星人、兽人、地精、巨人、巨魔、…