请解释一下区别

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(使用前将#替换为@)

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

  • 如何在 Visual Studio 2010 中增强 XAML 设计器?

    当我使用 XAML 设计器时 进入设计器和退出设计器是如此困难和缓慢 当我这样做时 Visual Studio 卡了一段时间 有什么方法可以增强 XAML 设计器和编辑器吗 Ant 保存 XAML 文件时非常慢 这通常意味着您可能有复杂的
  • c和java语言中的换行符

    现在行分隔符取决于系统 但在 C 程序中我使用 n 作为行分隔符 无论我在 Windows 还是 Linux 中运行它都可以正常工作 为什么 在java中 我们必须使用 n 因为它与系统相关 那么为什么我们在c中使用 n 作为新行 而不管我
  • 用 C++ 进行服装建模 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在编写一些软件 最终会绘制一个人体框架 可以配置各种参数 并且计划是在假人身上放置某种衣服 我研究
  • std::cout 和 std::wcout 有什么区别?

    在c 中 有什么区别std cout and std wcout 它们都控制流缓冲区的输出或将内容打印到控制台 或者它们只是相似吗 它们作用于不同的字符类型 std cout uses char作为字符类型 std wcout uses w
  • 向 Nhibernate 发出 SQL 查询

    如何将此 SQL 查询发送给 Nhibernate SELECT Customer name FROM Company INNER JOIN Customer ON Company CompanyId Customer CompanyId
  • 如何在 C# 中从 UNIX 纪元时间转换并考虑夏令时?

    我有一个从 unix 纪元时间转换为 NET DateTime 值的函数 public static DateTime FromUnixEpochTime double unixTime DateTime d new DateTime 19
  • 如何为 C 分配的 numpy 数组注册析构函数?

    我想在 C C 中为 numpy 数组分配数字 并将它们作为 numpy 数组传递给 python 我可以做的PyArray SimpleNewFromData http docs scipy org doc numpy reference
  • 如何将 #ifdef DEBUG 添加到 Xcode?

    我的项目中有一些代码永远不应该在发布版本中使用 但在测试时很有用 我想做这样的事情 ifdef DEBUG Run my debugging only code endif 在 Xcode 4 中哪里添加 DEBUG 设置 我尝试将其放入
  • 在新的浏览器进程中打开 URL

    我需要在新的浏览器进程中打开 URL 当浏览器进程退出时我需要收到通知 我当前使用的代码如下 Process browser new Process browser EnableRaisingEvents true browser Star
  • XamlReader.Load 在后台线程中。是否可以?

    WPF 应用程序具有从单独的文件加载用户控件的操作 使用XamlReader Load method StreamReader mysr new StreamReader pathToFile DependencyObject rootOb
  • 单元测试一起运行时失败,单独运行时通过

    所以我的单元测试遇到了一些问题 我不能只是将它们复制并粘贴到这里 但我会尽力而为 问题似乎是 如果我一项一项地运行测试 一切都会按预期进行 但如果我告诉它一起运行测试 则 1 5 将通过 TestMethod public void Obj
  • 如何访问另一个窗体上的ListView控件

    当单击与 ListView 所在表单不同的表单中的按钮时 我试图填充 ListView 我在 Form1 中创建了一个方法以在 Form2 中使用 并将参数传递给 Form1 中的方法 然后填充 ListView 当我调试时 我得到了传递的
  • 生成(非常)大的非重复整数序列而不进行预洗牌

    背景 我编写了一个简单的媒体客户端 服务器 我想生成一个不明显的时间值 随从客户端到服务器的每个命令一起发送 时间戳中将包含相当多的数据 纳秒分辨率 即使它不是真正准确 因为现代操作系统中计时器采样的限制 等 我想做的 在 Linux 上
  • Rx 中是否有与 Task.ContinueWith 运算符等效的操作?

    Rx 中是否有与 Task ContinueWith 运算符等效的操作 我正在将 Rx 与 Silverlight 一起使用 我正在使用 FromAsyncPattern 方法进行两个 Web 服务调用 并且我想这样做同步地 var o1
  • 在一个字节中存储 4 个不同的值

    我有一个任务要做 但我不知道从哪里开始 我不期待也绝对不想要代码中的答案 我想要一些关于该怎么做的指导 因为我感到有点失落 将变量打包和解包到一个字节中 您需要在一个字节中存储 4 个不同的值 这些值为 NAME RANGE BITS en
  • 使用 Moq 使用内部构造函数模拟类型

    我正在尝试模拟 Microsoft Sync Framework 中的一个类 它只有一个内部构造函数 当我尝试以下操作时 var fullEnumerationContextMock new Mock
  • 私有模板函数

    我有一堂课 C h class C private template
  • C++ 密码屏蔽

    我正在编写一个代码来接收密码输入 下面是我的代码 程序运行良好 但问题是除了数字和字母字符之外的其他键也被读取 例如删除 插入等 我知道如何避免它吗 特q string pw char c while c 13 Loop until Ent
  • Process.Start() 方法在什么情况下返回 false?

    From MSDN https msdn microsoft com en us library e8zac0ca v vs 110 aspx 返回值 true 表示有新的进程资源 开始了 如果由 FileName 成员指定的进程资源 St
  • 使用 GROUP 和 SUM 的 LINQ 查询

    请帮助我了解如何使用带有 GROUP 和 SUM 的 LINQ 进行查询 Query the database IEnumerable

随机推荐

  • 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