iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++中nullptr和NULL怎么用
  • 101
分享到

C++中nullptr和NULL怎么用

2023-06-19 12:06:59 101人浏览 薄情痞子
摘要

这篇文章主要介绍“c++中nullptr和NULL怎么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++中nullptr和NULL怎么用”文章能帮助大家解决问题。1. 为什么会有nullptr的

这篇文章主要介绍“c++中nullptr和NULL怎么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++中nullptr和NULL怎么用”文章能帮助大家解决问题。

1. 为什么会有nullptr的出现

目的:nullptr的出现主要是为了替代NULL。

那么,为什么要替代NULL呢?

在NULL的定义中存在会有2种方式,有的编译器会将NULL定义成0,有的编译器会将NULL定义成((void*)0)。

那么,这两种定义方式会对c++有什么区别呢?

在c++中不允许( void* )隐式的转成其他类型,在某些编译器把NULL定义成((void*)0)的情况下,当你定义变量去赋值NULL时候,NULL就会变定义为0。

另外,这种问题也会对c++的重载特性造成混乱。

接下来,进行代码演示

2. 代码演示

这里编写了MyClass类,里面有两个重载函数printf

#include <iOStream>using namespace std;class MyClass{public:MyClass() {}~MyClass() {}public:void printf(char *) {cout << "This is char*" << endl;}void printf(int)    {cout << "This is int" << endl;}};int main(int arGC, char **argv){return 0;}

接下来,我们new一个MyClass对象 a并调用成员函数printf,传入NULL

#include <iostream>using namespace std;class MyClass{public:MyClass() {}~MyClass() {}public:void printf(char *) {cout << "This is char*" << endl;}void printf(int)    {cout << "This is int" << endl;}};int main(int argc, char **argv){MyClass a;a.printf(NULL);return 0;}

调试结果

C++中nullptr和NULL怎么用

以上可以看到,传入NULL时,调用printf(int), 与我们的本意调用printf(char*)相违背。

我们看看编译现在把NULL定义为哪种方式,我使用的是vs2017

C++中nullptr和NULL怎么用

可以看到将NULL定义0

接下来,我们的主角nullptr就出场了,将主函数里面的调用方式修改一下

int main(int argc, char **argv){MyClass a;a.printf(nullptr);return 0;}

调试结果

C++中nullptr和NULL怎么用

可以看到调用的printf(char*),这样nullptr和NULL的区别就出来了。

另外,nullptr能隐式转换成各类型指针,可以看看以下代码

C++中nullptr和NULL怎么用

关于“C++中nullptr和NULL怎么用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网其他教程频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: C++中nullptr和NULL怎么用

本文链接: https://www.lsjlt.com/news/296205.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++中nullptr和NULL怎么用
    这篇文章主要介绍“C++中nullptr和NULL怎么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++中nullptr和NULL怎么用”文章能帮助大家解决问题。1. 为什么会有nullptr的...
    99+
    2023-06-19
  • C++中nullptr 和 NULL 的区别及用法
    1. 为什么会有nullptr的出现 目的:nullptr的出现主要是为了替代NULL。 那么,为什么要替代NULL呢? 在NULL的定义中存在会有2种方式,有的编译器会将NULL定...
    99+
    2024-04-02
  • C++中NULL与nullptr的区别对比
    前言 在编写C程序的时候只看到过NULL,而在C++的编程中,我们可以看到NULL和nullptr两种关键字,其实nullptr是C++11版本中新加入的,它的出现是为了解决NULL...
    99+
    2024-04-02
  • C++中NULL与nullptr的区别有什么不同
    这篇文章主要介绍C++中NULL与nullptr的区别有什么不同,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、C程序中的NULL在C语言中,NULL通常被定义为:#define NULL ((void *)0)所...
    99+
    2023-06-15
  • C++的空指针能用nullptr代替NULL吗
    这篇文章主要介绍“C++的空指针能用nullptr代替NULL吗”,在日常操作中,相信很多人在C++的空指针能用nullptr代替NULL吗问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++的空指针能用nu...
    99+
    2023-06-27
  • C++11中longlong超长整型和nullptr初始化空指针怎么使用
    这篇“C++11中longlong超长整型和nullptr初始化空指针怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“...
    99+
    2023-07-04
  • Typescript中null和undefined怎么用
    这篇文章主要介绍Typescript中null和undefined怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!null和undefined在javascript中null表示...
    99+
    2024-04-02
  • c++中null的用法是什么
    在C++中,通常使用nullptr关键字来表示空指针,而不是使用NULL或0。nullptr是C++11引入的新关键字,用于表示空指...
    99+
    2024-03-12
    c++
  • C++11中longlong超长整型和nullptr初始化空指针
    目录1. C++11:long long 超长整型2. C++11:nullptr 初始化空指针本文介绍 C++11 标准中新添加的 long long 超长整型和 nullptr ...
    99+
    2022-12-31
    C++11 nullptr初始化空指针 C++11 long long 超长整型
  • MySQL中空值Null和空字符怎么使用
    这篇文章主要介绍了MySQL中空值Null和空字符怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MySQL中空值Null和空字符怎么使用文章都会有所收获,下面我们一起来看看吧。1. 空值 Null 和空...
    99+
    2023-06-30
  • NULL在c语言中的用法
    null 是 c 语言中的一个特殊常量,它表示空指针值,通常被定义为 0。使用 null 可以明确表示指针未指向任何有效的内存地址,也能用于错误检查和动态内存管理。主要使用场景包括函数返...
    99+
    2024-05-02
    c语言
  • C#的Null合并运算符怎么用
    本篇内容主要讲解“C#的Null合并运算符怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#的Null合并运算符怎么用”吧!Null 合并运算符( )Null 合并运算符用于定义可空类型...
    99+
    2023-06-17
  • Python的None和C++的NULL用法解读
    目录Python的None和C++的NULLPython的NoneC++的NULLNone、Null与空字符‘‘什么区别NoneNull空字符’&...
    99+
    2023-05-19
    Python的None C++的NULL None和NULL
  • c++中null的概念是什么
    在C++中,通常使用nullptr关键字来表示空指针或空对象。nullptr是C++11引入的一种特殊类型的字面值,用于表示空指针。...
    99+
    2024-03-12
    c++
  • shell脚本中/dev/null怎么使用
    在Shell脚本中,/dev/null用于丢弃输出或输入。下面是一些/dev/null的使用示例:1. 丢弃输出:```shellcommand > /dev/null```这将运行命令并将其输出重定向到/dev/null,而不是在标准...
    99+
    2023-08-09
    shell
  • c#中SuspendThread和ResumeThread怎么用
    在C#中,SuspendThread和ResumeThread函数并不直接提供给开发人员使用。这些函数是Windows API中的函...
    99+
    2024-02-29
    c#
  • ​C#中RegisterWindowMessage和PostMessage怎么用
    在C#中,可以使用RegisterWindowMessage和PostMessage来进行窗口消息的注册和发送。 注册窗口消息: ...
    99+
    2024-02-29
    ​C#
  • c++中float和double怎么用
    c++ 中 float 和 double 分别为单精度和双精度浮点数据类型。float 占用 32 位,精度为 7 位小数;double 占用 64 位,精度为 15 位小数。float...
    99+
    2024-05-12
    c++
  • javascript中null有什么用
    这篇文章给大家分享的是有关javascript中null有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 javascript中null是JS提...
    99+
    2024-04-02
  • ​c++中FlushFileBuffers和PurgeComm怎么使用
    ​在C++中,FlushFileBuffers和PurgeComm是用于刷新文件缓冲区和清除通信设备缓冲区的函数。下面是它们的使用方...
    99+
    2024-02-29
    ​c++
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作