为什么当我取消引用数组指针时,结果值是指向数组第一个元素的指针,而不是整个数组对象?

2024-06-24

#include<iostream>

int num[3]={66,77,88};

int main()
{
    int(*pi)[3]=&num;
    std::cout<<*pi;
} 

结果是一个地址而不是一个数组。这背后的解释是什么?


不是整个数组对象?

*pi给出数组,即int[3]. But operator<< for std::basic_ostream没有采用数组的重载,但有一个overload https://en.cppreference.com/w/cpp/io/basic_ostream/operator_ltlt取指针(const void*), then 数组到指针的衰减 https://en.cppreference.com/w/cpp/language/array#Array-to-pointer_decay发生时,转换后的指针(int*) 指向数组的第一个元素,然后转换为const void*,然后传递给std::cout并打印出来。

存在从数组类型的左值和右值到指针类型的右值的隐式转换:它构造一个指向数组第一个元素的指针。每当数组出现在不需要数组但指针是的上下文中时,就会使用此转换:

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

为什么当我取消引用数组指针时,结果值是指向数组第一个元素的指针,而不是整个数组对象? 的相关文章

随机推荐

  • JSON 到 JavaScript 数组

    我在 JavaScript 中处理 JSON 数据时遇到问题 特别是在将数据用作数组以及访问和迭代各个值方面 JSON 文件的结构如下 head vars place lat long page results bindings place
  • 更新语句错误:子查询返回超过 1 个值

    我正在尝试更新列中的所有记录 以便它们以 CD 开头 例如DCE206 将成为 CDE206 UPDATE table SET column REPLACE column1 DC CD WHERE column1 LIKE DC 我正在使用
  • CSS 中水平 div 之间的自动间距

    我进行了很多搜索 但我并不幸运地找到了我所追求的解决方案 问题是 我创建了一个主 div 宽度 100 其中有几个内部 div 你可以在这里看到它 http jsfiddle net EAkLb 1 http jsfiddle net EA
  • 为什么 JQuery 不公开其 UUID 功能?

    在底层 JQuery 使用 UUID 映射 只是一个计数器 它维护为jQuery uuid 来解决当您从 Javascript 将属性附加到 DOM 中的标记时浏览器存在的众所周知的内存泄漏问题 JQuery 使用以下方法来代替这样做 da
  • 我如何淡入/淡出 TImage?

    我有一个简单的TForm命名为Form1 Image1 是一个TImage加载了一个 PNGImage 和一个 Button1TButton测试事物 成功实现了对图像1的Alpha Blend的方法 代码如下 procedure SetPN
  • 在 php 中验证 XMLHttpRequest

    我使用以下代码将数据发送到 PHP 站点 if window XMLHttpRequest code for IE7 Firefox Chrome Opera Safari xmlhttp new XMLHttpRequest else c
  • 从 TypeInfo 对象获取类型的完全限定名称

    是否有可能以某种方式获取包含在类型中的类型的完全限定名称TypeInfo object 在调试器中 许多这些值很好地显示为System Int32但是当它打印出来时 没有一个包含这个完全限定的名称 我需要这个作为参数Type GetType
  • StartCoroutine 被调用多次 (C# Unity)

    我正在 Unity 中创建一个弹出菜单选项 现在我的问题是我在 void update 中创建的协程被调用了很多次 我的意思是在我的 Unity 控制台上 Debug Logs 正在递增 它不应该正确 因为它已经是协程了 有人可以帮助我了解
  • 在一次操作中更改多个按钮的文本

    我有一个由许多按钮 50 组成的表单 除了后缀号之外 它们都具有相同的名称 btn 0 btn 1 btn 3 etc 我想通过一次操作更改这些按钮的文本 有没有办法像数组一样处理按钮 btn i Text something 也许执行一个
  • iPhone/iPad 应用程序代码混淆 - 有可能吗?值得? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我已经研究了很多 无论是在 SO 上 还是到处谷歌搜索 但我似乎找不到关于用 Objective C 编写的 iPhone iPad
  • 免费在线网络开发工具列表[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 What free onlineWeb 开发人员有哪些可用且 应该了解 的工具 为了设定列表的精神 这里有一些例子 谷歌代码游乐场 htt
  • 开头和结尾的画廊空间

    我遇到了以下问题 我制作了一个带有画廊的表单 该画廊不包含图像 而是包含我的一个班级中的项目 图库中每个项目内的所有内容都完美显示 我使用以下方法删除了图像之间的空间
  • Node.js 中的时间单调递增

    这个问题已经为浏览器解答了here https stackoverflow com questions 7272395 monotonically increasing time in javascript but window perfo
  • 在 ImageField 上设置 MediaItem

    现在mediaItem Src抛出一个过时的警告并声明使用 MediaItem 属性 这mediaItem MediaItem但没有二传手 这个警告真的只是为了让人们使用类似的东西 var image new Sitecore Data I
  • Mercurial 与 SVN 中的私有分支机构的比较

    假设 SVN 中的分支 合并支持与 Mercurial 中的一样好 一方面考虑 SVN 系统 人们总是在自己的私有分支中工作 然后当他们处于合适的位置时 将他们的私有分支合并到 主 分支 或任何他们的 父 分支 他们可以定期合并其他方式以使
  • 在哪里可以找到 neo4j 快速教程? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在Postgresql时间戳中存储Golang time.time?

    我可以知道如何存储time timePostgresql 中的对象 例如 SQL 查询 INSERT INTO UserAccount email login time VALUES email protected cdn cgi l em
  • iPhone - 来自本地文件 URL 的 NSData

    我有一个NSURL对象 它为我提供本地文件的路径 在文档文件夹中 我想填充一个NSData包含此文件内容的对象 尝试使用dataWithContentsOfURL 但这失败了 我知道该文件存在 因为 iPhoneSDK返回路径 有人可以告诉
  • Pandas 列值介于另一个数据帧列的值之间

    我有两个 pandas 数据框 如下所示 import pandas as pd import numpy as np import string size 5 student names join np random choice lis
  • 为什么当我取消引用数组指针时,结果值是指向数组第一个元素的指针,而不是整个数组对象?

    include