首页 > 其他分享 > Null, nullptr, 0, '\0', '0', "0", '',"",' &

Null, nullptr, 0, '\0', '0', "0", '',"",' &

时间:2023-07-19 19:33:07浏览次数:26  
标签:字符 区别 nullptr 空字符 C++ Null 指针

Null, nullptr, 0, '\0', '0', "0", '',"",' '," "的区别

  • Null: Null指的是空指针,在c中用(void*)0表示,在c++中用0表示

    1. 任何类型的两个空指针比较相等
    2. C标准没有说空指针与指向内存地址0 的指针相同,尽管在实践中可能就是这种情况
    3. 解引用空指针是C中的未定义行为【UB】
  • nullptr: C++中的空指针

    1. 在C ++中,虽然继承了C的NULL宏,但空指针常量优先解释为整型0而不是指针值,这极容易导致某些错误。故C++ 11引入了一个显式nullptr常量来代替。
  • 0: 整形,代表值0,可用于初始化指针或整型变量,并且在较旧的代码中通常用于表示空指针。然而,它不是类型安全的,如果使用不当,可能会导致微妙的错误。

  • '\0': 表示空字符的字符文字,ASCII码为0。它通常用于终止 C 样式字符串

  • '0': 字符零,其 ASCII 值为 48

  • "0": 表示包含字符零的字符串。它是一个以空字符结尾的字符序列【编译器自动在结尾加'\0'】

  • '': 一个空字符文字。它在 C++ 中无效,因为字符文字必须至少包含一个字符

  • "": 一个空字符串文字。它表示长度为零的空终止字符序列

  • ' ': 空格字符,ASCII码为32

  • " ": 表示包含空格字符的字符串。它是一个以空字符结尾、长度为 1 的字符序列。

总之,nullptr 是现代 C++ 代码中表示空指针的首选方式,而 0NULL 是不类型安全的旧替代方案。'\0' 是用于终止 C 样式字符串的空字符,而 '0'"0" 表示字符零。 '' 在 C++ 中无效,"" 表示空字符串。 ' '" " 代表空格字符。

标签:字符,区别,nullptr,空字符,C++,Null,指针
From: https://www.cnblogs.com/J-12045/p/17566538.html

相关文章

  • django中request.query_params.get()和 request.data.get()的区别
    params用于获取字符串,data:用于获取正文,post方法两个参数都可以使用,get方法只能使用params例如:name=request.query_params.get('name',None)如果URL的查询参数中包含了名为"name"的参数,那么request.query_params.get('name',None)将返回该参数的值。否则,将返回None......
  • 协程与多线程的区别
    多线程和协程处理任务的效率取决于具体的应用场景和实现方式。一般来说,协程比多线程更高效常见比较多线程:优点:多线程可以同时执行多个任务,适用于需要并行执行多个阻塞或计算密集型任务的场景。可以充分利用多核处理器的能力,提高整体的计算性能。......
  • (转)Overlay和Underlay网络协议区别及概述讲解
    原文:https://www.cnblogs.com/fengdejiyixx/p/15567609.html本文分别介绍Overlay网络模型和Underlay网络模型。(一)Overlay网络模型跨主机网络意味着将不同主机上的容器用同一个虚拟网络连接起来。这个虚拟网络的拓扑结构和实现技术就是网络模型。物理网络模型中,连通多个物理网......
  • 大语言模型的预训练4:指示学习Instruction Learning详解以及和Prompt Learning,In-cont
    大语言模型的预训练[4]:指示学习InstructionLearning:Entailment-oriented、PLMoriented、human-oriented详解以及和PromptLearning,In-contentLearning区别1.指示学习的定义InstructionLearning让模型对题目/描述式的指令进行学习。针对每个任务,单独生成指示,通过在若干个......
  • (笔记)位置式PID与增量式PID区别浅析
    一、PID控制算法 什么是PID PID控制器以各种形式使用超过了1世纪,广泛应用在机械设备、气动设备和电子设备.在工业应用中PID及其衍生算法是应用最广泛的算法之一,是当之无愧的万能算法PID实指“比例proportional”、“积分integral”、“微分derivative”,这三项构......
  • 非标债和标准债的区别
    非标债和标准债的区别1.参与主体不同。标准化债券是由证券公司或银行承揽/承销,在上交所、深交所或银行间市场发行的债券业务,主要参与主体为银行、险资、公募基金等金融机构。非标债类融资是信托、保理、融资租赁公司等企业为城投服务发行的债类贷款行为,主要参与主体是个人投资者......
  • odoo editable两种属性的区别
    editable=top时,新增的行出现的第一行,如下图:editable=bottom,,新增的行出现的最后一行,如下图:代码如图:......
  • 大语言模型的预训练[2]:GPT、GPT2、GPT3、GPT3.5、GPT4相关理论知识和模型实现、模型
    大语言模型的预训练[2]:GPT、GPT2、GPT3、GPT3.5、GPT4相关理论知识和模型实现、模型应用以及各个版本之间的区别详解1.GPT模型1.1GPT模型简介在自然语言处理问题中,可从互联网上下载大量无标注数据,而针对具体问题的有标注数据却非常少,GPT是一种半监督学习方法,它致力于用大量......
  • 大语言模型的预训练[2]:GPT、GPT2、GPT3、GPT3.5、GPT4相关理论知识和模型实现、模型
    大语言模型的预训练[2]:GPT、GPT2、GPT3、GPT3.5、GPT4相关理论知识和模型实现、模型应用以及各个版本之间的区别详解1.GPT模型1.1GPT模型简介在自然语言处理问题中,可从互联网上下载大量无标注数据,而针对具体问题的有标注数据却非常少,GPT是一种半监督学习方法,它致力于用大......
  • rand.Read() 和 io.ReadFull(rand.Reader) 的区别?
    golang的随机包rand.go中我们可以看到rand.Read其实是调用的io.Reader.Read()1://Packagerandimplementsacryptographicallysecure1://Packagerandimplementsacryptographicallysecure2://pseudorandomnumbergenerator.3:packagerand4:......