请解释一下区别

2023-11-26

我有一个关于二维数组的程序

基地址是8678

#include<stdio.h>
#include<conio.h>
main()
{
 int arr[3][3]={
                 {83,8,43},
                 {73,45,6},
                 {34,67,9}
                 };
printf("%d ",&arr+1);  //points to 8696
printf("%d ",arr+1);   //points to 8684
return 0;
}  

有什么区别arr+1 and &arr+1?


嗯,它们是不同的东西。arr在大多数情况下衰减为指向数组第一个元素的指针 - 这意味着指向 2D 数组中第一个 3 元素行的指针: typeint (*)[3]. arr + 1,则指向数组中的第二行。

&arr是数组本身的地址(类型int (*)[3][3]), so &arr + 1指向刚刚过去整个二维数组末尾的内存。

您可以通过不同的打印方式轻松确认此行为。具体来说,打印新指针的偏移量而不是值本身将有助于澄清问题。这些打印语句的程序输出:

printf("%ld\n",(intptr_t)(&arr+1) - (intptr_t)arr);
printf("%ld\n",(intptr_t)(arr+1) - (intptr_t)arr);

将是小数偏移量&arr+1 and arr+1分别。这是我刚刚进行的测试运行的输出:

36
12

36 匹配:3 行 × 3 列 × 每个条目 4 字节 = 36 字节。 12 也是如此:1 行 × 3 列 × 每个条目 4 字节 = 12 字节。

注意 - 您还使用打印指针%d,这是错误的。你可能应该使用%p为了那个原因。

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

请解释一下区别 的相关文章

  • 用于代数简化和求解的 C# 库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 网络上有很多代数求解器和简化器 例如 algebra com 上不错的代数求解器和简化器 然而 我正在
  • 使用 std::packaged_task/std::exception_ptr 时,线程清理程序报告数据争用

    我遇到了线程清理程序 TSan 的一些问题 抱怨某些生产代码中的数据争用 其中 std packaged task 通过将它们包装在 std function 中而移交给调度程序线程 对于这个问题 我简化了它在生产中的作用 同时触发 TSa
  • 如何将非静态类成员“std::bind”绑定到 Win32 回调函数“WNDPROC”?

    我正在尝试将非静态类成员绑定到标准WNDPROC http msdn microsoft com en us library ms633573 aspx功能 我知道我可以通过将类成员设为静态来简单地做到这一点 但是 作为一名 C 11 ST
  • 确保 StreamReader 不会挂起等待数据

    下面的代码读取从 tcp 客户端流读取的所有内容 并且在下一次迭代中它将仅位于 Read 上 我假设正在等待数据 我如何确保它不会在没有任何内容可供读取时返回 我是否必须设置低超时 并在失败时响应异常 或者有更好的办法吗 TcpClient
  • 计算 Richtextbox 中所有单词的最有效方法是什么?

    我正在编写一个文本编辑器 需要提供实时字数统计 现在我正在使用这个扩展方法 public static int WordCount this string s s s TrimEnd if String IsNullOrEmpty s re
  • 单个对象的 Monogame XNA 变换矩阵?

    我读过一些解释 XNA Monogame 变换矩阵的教程 问题是这些矩阵应用于 SpriteBatch Begin matrix 这意味着所有 Draw 代码都将被转换 如何将变换矩阵应用于单个可绘制对象 就我而言 我想转换滚动背景 使其自
  • 获取两个工作日之间的天数差异

    这听起来很简单 但我不明白其中的意义 那么获取两次之间的天数的最简单方法是什么DayOfWeeks当第一个是起点时 如果下一个工作日较早 则应考虑在下周 The DayOfWeek 枚举 http 20 20 5B1 5D 3a 20htt
  • 标准化 UTF-8 到底是什么?

    The 重症监护室项目 http userguide icu project org transforms normalization 现在也有一个PHP库 http us php net manual en class normalize
  • DbContext 和 ObjectContext 有什么区别

    From MSDN 表示工作单元和存储库模式的组合 使您能够查询数据库并将更改分组在一起 然后将这些更改作为一个单元写回存储 DbContext在概念上类似于ObjectContext 我虽然DbContext只处理与数据库的连接以及针对数
  • C#:帮助理解 UML 类图中的 <>

    我目前正在做一个项目 我们必须从 UML 图编写代码 我了解 UML 类图的剖析 但我无法理解什么 lt
  • 如何禁用 fread() 中的缓冲?

    我正在使用 fread 和 fwrite 读取和写入套接字 我相信这些函数用于缓冲输入和输出 有什么方法可以在仍然使用这些功能的同时禁用缓冲吗 Edit 我正在构建一个远程桌面应用程序 远程客户端似乎 落后于服务器 我不知道可能是什么原因
  • 等待进程释放文件

    我如何等待文件空闲以便ss Save 可以用新的覆盖它吗 如果我紧密地运行两次 左右 我会得到一个generic GDI error
  • AES 128 CBC 蒙特卡罗测试

    我正在 AES 128 CBC 上执行 MCT 如中所述http csrc nist gov groups STM cavp documents aes AESAVS pdf http csrc nist gov groups STM ca
  • 使用管道时,如果子进程数量大于处理器数量,进程是否会被阻塞?

    当子进程数量很大时 我的程序停止运行 我不知道问题是什么 但我猜子进程在运行时以某种方式被阻止 下面是该程序的主要工作流程 void function int process num int i initial variables for
  • 按 Esc 按键关闭 Ajax Modal 弹出窗口

    我已经使用 Ajax 显示了一个面板弹出窗口 我要做的是当用户按 Esc 键时关闭该窗口 这可能吗 如果有人知道这一点或以前做过这一点 请帮助我 Thanks 通过以下链接 您可以通过按退出按钮轻松关闭窗口 http www codepro
  • 不同类型指针之间的减法[重复]

    这个问题在这里已经有答案了 我试图找到两个变量之间的内存距离 具体来说 我需要找到 char 数组和 int 之间的距离 char data 5 int a 0 printf p n p n data 5 a long int distan
  • C++ 条件编译

    我有以下代码片段 ifdef DO LOG define log p record p else define log p endif void record char data 现在如果我打电话log hello world 在我的代码中
  • 我的班级应该订阅自己的公共活动吗?

    我正在使用 C 3 0 遵循标准事件模式我有 public event EventHandler
  • 当从finally中抛出异常时,Catch块不会被评估

    出现这个问题的原因是之前在 NET 4 0 中运行的代码在 NET 4 5 中因未处理的异常而失败 部分原因是 try finallys 如果您想了解详细信息 请阅读更多内容微软连接 https connect microsoft com
  • 如何将 PostgreSql 与 EntityFramework 6.0.2 集成? [复制]

    这个问题在这里已经有答案了 我收到以下错误 实体框架提供程序类型的 实例 成员 Npgsql NpgsqlServices Npgsql 版本 2 0 14 2 文化 中性 PublicKeyToken 5d8b90d52f46fda7 没

随机推荐

  • Android - 如何通过用户名以编程方式切换用户?

    我是 Android 新手 我必须在工作中创建一个执行以下任务的应用程序 我监听一个应该向我发送用户名的套接字 收到用户名后 我需要在平板电脑上切换到该用户帐户 如果我收到与当前活动用户相同的用户名 我不需要切换 显然 我们的平板电脑已获得
  • unaccent() 阻止 Postgres 中的索引使用

    我想从导入到 PostgreSQL 9 3 5 的 OpenStreetMap 数据库中检索给定名称的路线 操作系统是 Win7 64 位 为了具有一定的容错能力 我使用了 Postgres 的非重音扩展 我的查询如下所示 SELECT F
  • 使用补丁(Flask)进行单元测试行为

    我在尝试着patch我的 Flask api 中的方法 但似乎方法调用没有被替换 做app test client 做一些我所缺少的事情 例如 如果我跑 patch k stats mstats def test ps self mstat
  • 如果“设置”->“显示”->“显示尺寸”更改为“大”或“小”,则禁用应用程序或活动缩放

    在我的应用程序中 我不想允许它调整大小 因为它会产生设计问题 我尝试过android resizeableActivity false 在应用程序标签和启动器活动标签中 但它没有帮助 我已经找到了解决方案 如果系统文本大小更改或显示大小设置
  • socket.io 握手返回错误“传输未知”

    我正在尝试使用大象io将事件从我的 PHP 脚本发送到我的 Nodejs 服务器 使用这个库进行测试时 我注意到握手没有按预期发生 After 阅读有关客户端 服务器握手的规范使用socket io 我测试了对我的nodejs服务器的简单握
  • 春豆到底是什么?

    我还没有找到我能理解的 Spring bean 的高级定义 我在 Grails 文档和书籍中经常看到它们被引用 但我认为了解它们是什么会很有帮助 那么什么是Spring bean呢 如何使用它们 它们与依赖注入有什么关系吗 Spring核心
  • Symfony2:仅当复选框为真时,如何验证输入字段不为空?

    在 Symfony2 中 仅当复选框的值为 1 True 时 如何验证输入字段不是空白 否则允许空白 更准确地说 我有一个带有复选框的表单和一个带有文本类型的输入字段 在 Symfony 的实体上应该有一个检查 当复选框的值为 True 1
  • 根据接口生成表达式

    我遇到了例外无法将类型 MySomeTypeThatImplementsISomeInterfaceAndIsPassedAs T ToTheClass 转换为类型 ISomeInterface LINQ to Entities 仅支持转换
  • 重新分区(1) 和合并(1) 之间的区别

    在我们的项目中 我们使用repartition 1 将数据写入表中 我有兴趣知道为什么coalesce 1 不能在这里使用 因为repartition与coalesce I know repartition跨分区均匀分布数据 但是当输出文件
  • 如果使用.remove(),表单将无法提交?

    我对 Firefox jQuery 或两者都感到困扰 操作系统为 Windows 7 Firefox 版本为 4 0 1 jQuery 版本为 1 5 1 6 基本上我有一个表格button其中的元素 通过 jQuery 附加了一个单击事件
  • pandas.read_html 不支持小数逗号

    我正在使用读取 xlm 文件pandas read html并且工作几乎完美 问题是该文件使用逗号作为小数分隔符而不是点 默认在read html 我可以轻松地将一个文件中的逗号替换为点 但我有近 200 个具有该配置的文件 和pandas
  • 使用开发者工具时 IE9 是否启用“某些功能”?

    我正在使用 Google Maps Javascript API V3 最近我的地图上的图标没有显示在 IE9 中 为了弄清真相 我打开了IE的开发者工具 当我刷新地图时 图标出现了 然而 当我关闭 IE 并重新启动时 图标不存在 再一次
  • 没有会话绑定到当前上下文

    我按照这个教程进行操作 http nhforge org blogs nhibernate archive 2011 03 03 effective nhibernate session management for web apps as
  • TokenCache.BeforeAccess 上的 HttpContext.Current 为 null

    我正在使用 OWIN 和 OpenIDConnect 针对 Azure AD 测试一个 Web 项目 我正在使用此示例中的大部分代码 https github com Azure Samples active directory dotne
  • 使用 yyyy-MM-dd hh:mm:ss 格式解析的日期出现意外差异

    我运行下面的java代码来获取时差 import java text SimpleDateFormat import java util Calendar import java util Date import java util Tim
  • 如何找到命名空间及其成员的所有用法?

    我正在尝试搜索一个大型解决方案以查找给定名称空间或其成员的任何用法 例如 System IO Resharper 的 查找用法 允许我查找以下内容的参考System IO 但仅在明确使用时 如果文件声明using System IO 然后使
  • 如何限制递归子目录搜索的深度

    我有一个功能 当前可以抓取所有文件夹和子文件夹来检查我正在构建的小工具的 ACL 但我正在绞尽脑汁试图弄清楚如何限制它可以达到的深度 例如 您有一个 4 层深度的文件夹 但我希望只能获取其中 3 层的 ACL 目前我已将其编码如下 priv
  • Cakephp 使用 htaccess 和 htpasswd 进行密码保护 - 如何?

    在 Cakephp 中使用 htaccess 开发期间如何使用密码保护我的网站 我必须更改哪个 htaccess 文件 我必须在 htaccess 中写什么 我应该把 htpasswd 放在哪里 我在谷歌上搜索过 但找不到任何有用的东西 我
  • 为什么 Array.prototype 返回一个空数组?

    这可能是一个愚蠢的问题 但是为什么当我控制台时我得到一个空数组Array prototype 我期待着推送和弹出方法 大多数原型的内置方法都不是可枚举的 因此如果您使用它们将不会显示for in 你不应该在数组上这样做 但这只是一个例子 由
  • 请解释一下区别

    我有一个关于二维数组的程序 基地址是8678 include