C 中 array 和 &array[0] 之间的区别

2023-12-03

考虑到这个声明:

int 数组[] = ....;

我知道数组[0]将第一个元素的地址作为其值。

但是关于&大批?我在我的程序中尝试了这个,它还返回了第一个元素的地址。那么有什么区别呢?


尝试“之间的差异'A', 65LL and 65.0?

所有值都彼此相等(假设为 ASCII),但又不同types以及可能的各种位宽和编码。

现在“之间的区别&array and &array[0]"

两者的值彼此相等,因为它们指向内存中的同一位置,但它们的不同之处在于type: 指向一个的指针int数组与指向 a 的指针int.

int a[] = {1,2,4};
// &a is a `pointer to array 3 of int`

这种类型差异的一个常见影响是指针数学

printf("%p\n", (void*) (&a[0] + 1));  // next `int` address
printf("%p\n", (void*) (&a + 1));     // one past end of array address

[高级]:虽然这两个指针通常采用相同的编码和大小,但在 C 中,它们could编码和大小也不同,但仍然指向相同的地址。

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

C 中 array 和 &array[0] 之间的区别 的相关文章

  • 如何在 C# 中将 Json 转换为对象

    我想将 Json 转换为 C 中的对象 这里的 Json 是 值 e920ce0f e3f5 4c6f 8e3d d2fbc51990e4 如何使用 Object 问题看似愚蠢 但其实并不那么愚蠢 我没有简单的 Json 我有 IEnume
  • MVC 5 中具有 ASP.NET Identity 的 Autofac 不会验证 OWIN 管道中的安全标记

    我在 MVC 5 中设置了 AutoFac 来与 ASP NET Identity 一起使用 表面上一切似乎都工作正常 即用户可以创建帐户并登录 但后来我发现 当安全标记更改时 用户不会注销 通过在 AspNetUsers 表中进行暴力破解
  • 为什么这个 makefile 在“make clean”上执行目标

    这是我当前的 makefile CXX g CXXFLAGS Wall O3 LDFLAGS TARGET testcpp SRCS main cpp object cpp foo cpp OBJS SRCS cpp o DEPS SRCS
  • Makefile 和 .Mak 文件 + CodeBlocks 和 VStudio

    我对整个 makefile 概念有点陌生 所以我对此有一些疑问 我正在 Linux 中使用 CodeBlocks 创建一个项目 我使用一个名为 cbp2mak 的工具从 CodeBlocks 项目创建一个 make 文件 如果有人知道更好的
  • OpenGL:如何检查用户是否支持glGenBuffers()?

    我检查了文档 它说 OpenGL 版本必须至少为 1 5 才能制作glGenBuffers 工作 用户使用的是1 5版本但是函数调用会导致崩溃 这是文档中的错误 还是用户的驱动程序问题 我正在用这个glGenBuffers 对于VBO 我如
  • Libev,如何将参数传递给相关回调

    我陷入了 libev 中争论的境地 通常 libev 在类似的函数中接收包 接收回调 没关系 但是实际操作中 我们需要派遣一个亲戚 写回调 根据收到的包裹处理具体工作 例如 S RECV MSG pstRecvMsg S RECV MSG
  • 保证复制省略是否适用于函数参数?

    如果我理解正确的话 从 C 17 开始 这段代码现在要求不进行任何复制 Foo myfunc void return Foo auto foo myfunc no copy 函数参数也是如此吗 下面的代码中的副本会被优化掉吗 Foo myf
  • 让网络摄像头在 OpenCV 中工作

    我正在尝试让我的网络摄像头在 Windows 7 64 位中的 OpenCV 版本 2 2 中捕获视频 但是 我遇到了一些困难 OpenCV 附带的示例二进制文件都无法检测到我的网络摄像头 最近我发现这篇文章表明答案在于重新编译一个文件 o
  • MySQL 连接器 C++ 64 位在 Visual Studio 2012 中从源代码构建

    我正在尝试建立mySQL 连接器 C 从源头在视觉工作室2012为了64 bit建筑学 我知道这取决于一些boost头文件和C 连接器 跑步CMake生成一个项目文件 但该项目文件无法编译 因为有一大堆非常令人困惑的错误 这些错误可能与包含
  • 当Model和ViewModel一模一样的时候怎么办?

    我想知道什么是最佳实践 我被告知要始终创建 ViewModel 并且永远不要使用核心模型类将数据传递到视图 这就说得通了 让我把事情分开 但什么是Model 和ViewModel一模一样 我应该重新创建另一个类还是只是使用它 我觉得我应该重
  • .NET 和 Mono 之间的开发差异

    我正在研究 Mono 和 NET C 将来当项目开发时我们需要在 Linux 服务器上运行代码 此时我一直在研究 ASP NET MVC 和 Mono 我运行 Ubuntu 发行版 想要开发 Web 应用程序 其他一些开发人员使用 Wind
  • 以编程方式创建 Blob 存储容器

    我有一个要求 即在创建公司时 在我的 storageaccount 中创建关联的 blob 存储容器 并将容器名称设置为传入的字符串变量 我已尝试以下操作 public void AddCompanyStorage string subDo
  • 在哪里可以找到 Microsoft.Build.Utilities.v3.5

    如何获取 Microsoft Build Utilities v3 5 我正在使用 StyleCop 4 7 Stylecop dll 中的 StyleCop msbuild 任务似乎依赖于 Microsoft Build Utilitie
  • 调用 .ToArray() 时出现 ArgumentException

    我有一个经常被清除的列表 代码完全是这样的 VisitorAgent toPersist List
  • 如何高效计算连续数的数字积?

    我正在尝试计算数字序列中每个数字的数字乘积 例如 21 22 23 98 99 将会 2 4 6 72 81 为了降低复杂性 我只会考虑 连续的数字 http simple wikipedia org wiki Consecutive in
  • 如何从 Windows Phone 7 模拟器获取数据

    我有一个 WP7 的单元测试框架 它在手机上运行 结果相当难以阅读 因此我将它们写入 XDocument 我的问题是 如何才能将这个 XML 文件从手机上移到我的桌面上 以便我可以实际分析结果 到目前为止 我所做的是将 Debugger B
  • 如何获取带有某个属性注释的所有属性?

    我刚刚从 Roslyn 开始 我想找到所有用属性名称 OneToOne 注释的属性 我启动了 SyntaxVisualizer 并能够获取对该节点的引用 但我想知道是否有更简单的方法来实现此目的 这就是我所拥有的 var prop docu
  • Array.of 与“[ ]”。何时使用 Array.of 而不是“[ ]”?

    当我发现时我正在读一些书Array of https developer mozilla org en docs Web JavaScript Reference Global Objects Array of 根据 MDN Array o
  • Streamwriter 覆盖 txt 文件中的文本

    有没有什么方法可以重新打开流写入器而不创建新的写入对象 因为此时 当调用 WriteOdd 时 streamwriter 正在覆盖在它之前调用的 WriteEven public void WriteEven StreamWriter wr
  • 如何在 ASP.NET Core 中注入泛型的依赖关系

    我有以下存储库类 public class TestRepository Repository

随机推荐

  • 访问自定义数据注释内的依赖属性的简单方法

    我的上有以下属性DomainRegistry model Domain Extension public string Name get set Required ErrorMessage Select extension public s
  • Java字符串-将多个空格替换为一个,然后根据空格将字符串拆分为数组[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 假设我有一个字符串 s 2323 2323 232 3232 0 2 0 3 3232
  • 不在范围内:数据构造函数

    我写了一个程序haskell但我从 ghci 收到错误 这是源代码 我构建它 如果我有 p1 Prop p1 And Var A Not Var A 它将显示A A这就是源代码 import Data List import Data Ch
  • GMT 与本地时间转换(夏令时更改)

    我从服务器接收 GMT 时间结构 用户定义的结构 使用它我想将其转换为本地时间 我通过用接收到的结构填充 NSDate 组件来完成此操作 然后我使用日期格式化程序从中获取日期它 除了一种情况外 一切正常 如果 GMT 时间在 11 月 3
  • 替换文本文件中的模式

    下面是我的示例 html 文件 some text here img src http site com 7b399e20 77165 5fa 2a31ffb8 jpg sometext here some text here img sr
  • 如何使用 Yocto SDK 构建 Linux 内核模块?

    我正在尝试使用 Yocto SDK 构建 Linux 内核模块 但是 我遇到了编译错误 它抱怨 include uapi asm generic int ll64 h 12 10 fatal error asm bitsperlong h
  • 修改密码后无法登录mysql 5.7.9

    我已经安装了MysqlVer 14 14 Distrib 5 7 9 适用于 Linux x86 64 使用 EditLine 包装器 On CentOS Linux 版本 7 1 1503 我使用以下命令更改了 root 密码 alter
  • 为新的输入字符串重用 Antlr 对象(C++ 运行时)?

    我已经使用 C 运行时演示构建了一个基本解析器 并且运行良好 但是 我通常会解析大量输入字符串 是否可以修改代码以重用现有对象进行重复调用 如果是这样 有人有这方面的例子吗 是的 可以重复使用这些对象 解析调用的典型序列如下所示 input
  • XMLHttpRequest 读取外部文件

    我想通过 JavaScript 在客户端浏览器上运行 检索文本文件 从给定 URL 中包含的数据 到目前为止 我已经尝试过以下方法 var xmlhttp text xmlhttp new XMLHttpRequest xmlhttp op
  • 如何访问 SQL2005 Profiler 中的 Context_Info() 变量?

    我使用 Context Info 变量来跟踪正在执行存储过程和自由格式 SQL 的用户 对此服务器上的问题进行故障排除时 每个会话都会通过 我希望能够引入 context info 变量的值并基于它进行过滤 在设置 context info
  • 如何实现连续拖拽菜单效果?

    我正在尝试实现拖放菜单效果 我不知道该怎么做 也许有人有这种确切效果的经验 很简单 当用户触摸菜单项时 我希望在他们触摸的位置出现一个图形 他们的触摸现在将控制图形的平移 释放触摸后 图形将位于其位置并呈现完整的 Alpha 我已经熟悉创建
  • Rhino:在 Javascript 实现中访问 Java 接口变量

    Rhino 如何在Javascript实现中访问Java接口变量 我向其他方公开了一个 java 接口 让他们在 javascript 中提供相同的实现 public interface APIInterface public static
  • pg_ctl:加载共享库时出错:libpq.so.5

    我正在尝试通过以下方式获取 postgres 服务器状态 sudo etc init d postgres status u postgres 但出现以下错误 home alex olddisk usr local pgsql bin pg
  • ImportError:Python 中没有名为 ... 的模块错误 - 设置 PYTHONPATH 仍然不起作用

    我遇到与此处描述类似的问题如何修复 Python 中的 ImportError 没有名为 的模块 错误 但我无法通过设置 PYTHONPATH 的建议来修复它 我的目录如下所示 project python src ml init py c
  • File.ReadAllLines() 紧随其后的 File.WriteAllLines() 由于锁定而导致异常

    在我的程序中 我有一段代码 var lines File ReadAllLines myFileName if lines 0 null does a few things File WriteAllLines myFileName lin
  • 如何以编程方式设置实体框架代码优先的连接字符串?

    我正在尝试编写一些代码 允许我在 SQLCE 在我的开发计算机上本地 和完整 SQL 在 AppHarbor 上 之间切换 使用 SQL CE 连接字符串都为我处理 但我必须自己为 SQL 构造它 到目前为止我的代码如下 但是它给出了这个错
  • 在通过参数传递的对象上使用语句

    寻求有关正确使用 C using 语句的最佳输入 我可以用吗using参数对象上的语句 如以下不常见的示例代码片段 即多层应用程序 所示 虽然代码片段与我认为 using 语句应该在的不同ProcessFileAndReturnNumber
  • C++中的迭代器不是指针的一种吗?

    好吧 这次我决定使用STL 来制作一个列表 我需要为每个客户端创建一个专用的 TCP 套接字 因此 每当我建立连接时 我都会实例化一个套接字并在列表中添加一个指向它的指针 list
  • HTML 表单输入字段,以逗号分隔

    我试图弄清楚如何在一个表单中的单个文本框中输入多个单词 每个单词用逗号 分隔 然后根据逗号对单词进行配对 并将每个单词作为单独的记录插入到数据库中 我想到的是接受输入 然后使用php的explode函数分离出单词 并存储在数据库中 但我不知
  • C 中 array 和 &array[0] 之间的区别

    考虑到这个声明 int 数组 我知道数组 0 将第一个元素的地址作为其值 但是关于 大批 我在我的程序中尝试了这个 它还返回了第一个元素的地址 那么有什么区别呢 尝试 之间的差异 A 65LL and 65 0 所有值都彼此相等 假设为 A