C++ 中指针的值初始化到底有什么作用?

2023-11-23

我看过相关答案here and here对此,但我想要确认,因为他们都没有明确说明这一点。

假设我有一堂课Foo和一名会员bar类型的int*.

以下两个初始化完全等效吗?

Foo::Foo() : bar(NULL) // null pointer constant by macro
{
}

Foo::Foo() : bar() // value initialization
{
}

值初始化指针的初始化为空指针值;因此两个初始化列表是等效的。


指针没有类或数组类型,因此它们的值初始化是零初始化。 (8.5p8)

然后,(8.5p6)

To 零初始化类型的对象或引用T means:

  • if T是标量类型(3.9),对象被初始化为通过转换整数字面量获得的值0(零)到T

这个整数字面量0 is a 空指针常量(4.10p1),当转换为指针类型时,会创建一个空指针值.


请注意,具有静态和线程持续时间的变量的零初始化 (3.6.2) 也会将指针初始化为空指针值。


上面的段落引用来自 C++1y 草案 n3936,但它们在我也检查过的早期草案中是相同的。

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

C++ 中指针的值初始化到底有什么作用? 的相关文章

  • C++ std::accumulate 没有给出预期的总和

    double numbers 1 0 5 0 333333 0 25 0 2 0 166667 0 142857 0 125 0 111111 0 1 std vector
  • 为 DocumentDb 设置自定义 json 转换器

    我正在使用类型化 DocumentQuery 从 Azure DocumentDb 集合中读取文档 from f in client CreateDocumentQuery
  • 错误:表达式不可赋值三元运算符

    我有以下代码 MPLABX XC8 编译器给出此错误 错误 表达式不可分配 U1ERRIRbits RXFOIF uart1 oerr 1 uart1 oerr 0 这是相关代码部分 typedef union struct bool fe
  • 如何使用不同的基本路径托管 Blazor WebAssembly 应用程序

    我有一个 Blazor Webassemble NET 托管应用程序 在我们托管它的服务器上 应用程序的基本路径将是mydomain com coolapp 因此 为了尝试让应用程序在服务器上正确呈现 我一直遵循本页 应用程序基本路径 部分
  • C++中类成员函数相互调用有什么好处?

    我是 C 新手 我发现下面的编程风格对我来说很有趣 我在这里写了一个简化版本 include
  • Visual Studio 2013 调试器显示 std::string 的奇怪值

    我有一个大型的 cmake 生成的解决方案 其中包含许多项目 由于某种原因 我无法查看字符串的内容 因为根据调试器 Bx Buf含有一些垃圾 text c str 正确返回 Hello 该问题不仅仅发生在本地字符串上 返回的函数std st
  • 如何在 Linux 上重新实现(或包装)系统调用函数?

    假设我想完全接管 open 系统调用 也许要包装实际的系统调用并执行一些日志记录 一种方法是使用 LD PRELOAD http scaryreasoner wordpress com 2007 11 17 using ld preload
  • C# 结构默认值

    我有一个方法 它接受一个包含许多具有基本数据类型的字段的结构 我想传递大部分默认值 但需要进行一些调整 但我了解结构声明中的基本字段不能包含默认值声明 例如struct S int a 42 现在是这样的 OptionsStruct opt
  • 用于 C++ 中图像分析的 OpenCV 二进制图像掩模

    我正在尝试分析一些图像 这些图像的外部周围有很多噪声 但内部有一个清晰的圆形中心 中心是我感兴趣的部分 但外部噪声正在影响我对图像的二进制阈值处理 为了忽略噪音 我尝试设置一个已知中心位置和半径的圆形蒙版 从而使该圆之外的所有像素都更改为黑
  • 自己绘制的WPF自定义滑块

    这是我关于堆栈溢出的第一个问题 所以不要踢它 我在尝试创建 Mac 风格的滑块控件时遇到问题 我已经发现这个解决方案 http www codeproject com KB miscctrl MAC Slider aspx我已经在我的解决方
  • ASP.NET - Crystal Report Viewer 打印按钮在 ASP.NET 中不起作用

    我正在使用 Visual Studio 2008 但我遇到了水晶报告问题 当我单击打印按钮时 它会将我带到弹出窗口 但未找到页面 弹出的网址是 http localhost aspnet client System Web 2 0 5072
  • DateTime.ParseExact - 为什么 yy 变成 2015 而不是 1915

    为什么 NET 假定以下年份是 2015 年 而不是 1915 年 var d DateTime ParseExact 20 11 15 dd MM yy new CultureInfo en GB 我想 它会尝试接近 但其背后是否有合理的
  • 如何在 C++ 中正确使用 cin.fail()

    我正在编写一个程序 从用户那里获取整数输入cin gt gt iUserSel 如果用户输入一个字母 程序就会进入无限循环 我试图用下面的代码来阻止这种情况 但程序进入无限循环并打印出 错误 输入 我该如何修复我的程序 cin gt gt
  • 更改私有模块片段是否会导致模块重新编译?

    On 此页面有关 C 20 模块功能 https www modernescpp com index php c 20 modules private module fragment and header units 我发现了这样的说法 借
  • MINIX内部碎片2

    我正在用 C 语言编写一些软件 它递归地列出给定目录中的所有文件 现在我需要计算出内部碎片 我花了很长时间研究这个问题 发现 ext2 上的内部碎片只发生在最后一个块中 我知道理论上你应该能够从索引节点号获得第一个和最后一个块地址 但我不知
  • 运行实体框架自定义工具,它有什么作用?

    在 Visual Studio 中 当使用实体框架并为 tt 和 Context tt 文件应用运行自定义工具时 它是什么以及它有什么作用 为什么它解决数据库同步问题 有时 为什么我应该在运行 tt 之前运行它 Context tt 它被称
  • 让 Windows 尝试读取文件

    我正在对 Windows 文件系统进行某种封装 当用户请求打开文件时 Windows 调用我的驱动程序来提供数据 在正常操作中 驱动程序返回缓存的文件内容 但是 在某些情况下 实际文件没有缓存 我需要从网络下载它 问题是是否有可能让 Win
  • Windows Phone 的 JSON 反序列化

    我正在尝试反序列化以下 JSON 但我真的不知道如何使用 JSON net 来完成这项工作 我正在使用 C 和 JSON Net 库 我的 JSON 如下 found 3 bounds 43 54919 172 62148 43 54487
  • 在多线程环境中捕获信号

    我有一个大型程序 需要尽可能具有弹性 并且有大量线程 我需要捕获所有信号SIGBUS SIGSEGV 并在必要时重新初始化有问题的线程 或者禁用该线程以继续减少功能 我的第一个想法是做一个setjump 然后设置信号处理程序 可以记录问题
  • 跟踪白色背景中的白球(Python/OpenCV)

    我在 Python 3 中使用 OpenCV 来检测白场上的白 黑球 并给出它的精确 x y 半径 和颜色 我使用函数 cv2 Canny 和 cv2 findContours 来找到它 但问题是 cv2 Canny 并不总是检测到圆的完整

随机推荐

  • 模型视图投影矩阵的用途

    我们使用模型视图投影矩阵的目的是什么 为什么着色器需要模型视图投影矩阵 模型 视图和投影矩阵是三个独立的矩阵 模型从对象的局部坐标空间映射到世界空间 从世界空间到相机空间的视图 从相机到屏幕的投影 如果您组合了所有三个 则可以使用一个结果从
  • wait((int *)0) 的含义

    一个使用这样的等待函数的程序是 include
  • android Zoom-to-Fit All Markers on Google Map v2 [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 如何放大 缩小地图视图以覆盖所有标记 我正在审查 sdk 中给出的 gmap V2 示例
  • 如何配置分页codeigniter?

    我尝试使用CodeIgniter进行分页 根据Codeigniter的手册 它应该很简单 即使在示例中是这样的 第一个 最后一个 config total rows this gt searchdesc model gt queryallr
  • 调用SKPaymentQueue RestoreCompletedTransactions,无响应

    这里的用例是用户从未购买过我的应用内购买 但点击了 恢复 按钮 我想让用户知道恢复失败 因为没有什么可恢复的 问题是我没有收到任何事件 所以我不知道发生了什么 当我的用户点击界面中的 恢复 按钮时 我调用 SKPaymentQueue de
  • 使用 json 填充下拉列表

    我有包含 id 和 name 列的 SQLite 表 我从 autocomplete php 页面返回这些行的数组 例如 json 如何使用 jquery 和 JavaScript 使用此 json 填充选项 下拉列表 我是 JavaScr
  • 如何解决构建过程中 Android 库自定义属性和包名称重新映射?

    随着时间的推移 我们的 Android 项目已经扩展了很多 现在我们正在从同一源代码树创建多个品牌 APK 由于 Android 的包命名要求 这变得具有挑战性 我们将所有共享代码都放在 Android 库项目中 该项目包含在主应用程序项目
  • 替换 numpy 中的子数组

    给定一个数组 gt gt gt n 2 gt gt gt a numpy array 1 1 1 1 2 3 1 3 4 n gt gt gt a array 1 1 1 1 2 3 1 3 4 1 1 1 1 2 3 1 3 4 我知道可
  • 将 System.Net.mail.MailMessage 保存为 .msg 文件

    我正在构建一个应用程序 我有义务创建一个 MailMessage System Net mail MailMessage 并将其保存在磁盘上作为 msg 扩展名而不是 eml 以下是我用来将 MailMessage 保存为 msg 文件的方
  • Paypal Sandbox 付款状态待定

    我正在使用 Java Rest API 直接从沙箱中的信用卡执行付款 根据文档 所有付款均处于 待处理 状态 https developer paypal com webapps developer docs api create a pa
  • 递归转换目录和子目录中所有文件的所有EOL(dos->unix),无需dos2unix

    如何递归地转换目录和子目录中所有文件的所有 EOL dos gt unix without dos2unix 我没有 无法安装 有没有办法使用tr d r 和管道 如果是这样 怎么办 对于当前目录中的所有文件 您可以使用 Perl 一行代码
  • 如何修复“警告预期“此”将由类方法使用”eslint 错误?

    我正在 React 组件中创建这样的 PDF 导出类 Test 扩展 React PureComponent savePDF const source document getElementById printContainer eslin
  • 这是使用 redux 删除项目的正确方法吗?

    我知道我不应该改变输入 而应该克隆对象来改变它 我遵循 redux 启动项目中使用的约定 该项目使用 ADD ITEM state action gt state items state items action payload value
  • dlopen 对于同一文件的两次调用会产生相同的句柄吗?

    如果我在同一个应用程序运行中对同一个库 文件使用 dlopen 两次 在这两种情况下它会产生相同的句柄吗 对此有任何保证吗 一个简短的实验表明它至少在我的盒子上如此 我目前正在玩一个小插件系统 出于好奇 如果对这种观察到的行为有某种保证 我
  • 如何使用 mplot3D 或类似工具显示 3D 阵列等值面的 3D 图

    我有一个 3 维 numpy 数组 我想 在 matplotlib 中 显示该数组的等值面的漂亮 3D 图 或更严格地说 显示通过在样本点之间插值定义的 3D 标量场的等值面 matplotlib 的 mplot3D 部分提供了很好的 3D
  • Promise 带有递归

    我看了一些关于承诺中的递归的问题 并对如何正确实现它们感到困惑 JavaScript 中的递归 Promise AngularJS 承诺具有递归功能 递归链接 Promise Javascript 递归 Promise 我整理了一个简单的例
  • php获取变量作为键,但没有分配值

    如果我在浏览器中输入以下内容 http domain com script php 1234 script php 有以下脚本 key array keys GET echo key 0 输出将是 1234 我正在尝试消除丑陋的 r 123
  • Python 3 写入管道

    我正在尝试编写一些代码将数据放入管道中 并且我希望该解决方案与 python 2 6 和 3 x 兼容 例子 from future import print function import subprocess import sys if
  • R 脚本行号错误? [复制]

    这个问题在这里已经有答案了 我找到了这个post从一年前开始 我正在使用R version 2 11 1 2010 05 31 但仍然收到没有行号的错误消息 有什么解决办法吗 那里给出的答案仍然有效 从脚本返回行号并不是那么简单 但是 R
  • C++ 中指针的值初始化到底有什么作用?

    我看过相关答案here and here对此 但我想要确认 因为他们都没有明确说明这一点 假设我有一堂课Foo和一名会员bar类型的int 以下两个初始化完全等效吗 Foo Foo bar NULL null pointer constan