指针减法不指向同一数组的不同元素在 C 中有效吗?

2024-01-24

指针减法不指向同一数组的不同元素在 C 中有效吗?

下面的东西是否能保证按照 C 标准工作?我依稀记得读到这是无效的?

int * a;
int * b;
a = (int*) 100;
b = (int*) 200;
printf("%d\n", b-a);

这会给我25吗?


来自 C 规范,附录 J.2未定义的行为:

不指向或超出同一数组对象的指针将被减去 (6.5.6)。

6.5.6 加法运算符,第 9 段说:

当两个指针相减时,两个指针都应指向同一个数组对象的元素,或者指向数组对象最后一个元素之后的一个;结果是两个数组元素的下标之差。

就是这样 - 你的例子导致了未定义的行为。也就是说,在大多数系统上它都能正常工作。你可能do想要改变你的printf格式化为%td表明您正在打印ptrdiff_t type.

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

指针减法不指向同一数组的不同元素在 C 中有效吗? 的相关文章

  • 如何获取正在访问 ASP.NET 应用程序的当前用户?

    为了获取系统中当前登录的用户 我使用以下代码 string opl System Security Principal WindowsIdentity GetCurrent Name ToString 我正在开发一个 ASP NET 应用程
  • “构建”构建我的项目,“构建解决方案”则不构建

    我刚刚开始使用VS2010 我有一个较大的解决方案 已从 VS2008 成功迁移 我已将一个名为 Test 的控制台应用程序项目添加到解决方案中 选择构建 gt 构建解决方案不编译新项目 选择构建 gt 构建测试确实构建了项目 在失败的情况
  • 在结构中使用 typedef 枚举并避免类型混合警告

    我正在使用 C99 我的编译器是 IAR Embedded workbench 但我认为这个问题对于其他一些编译器也有效 我有一个 typedef 枚举 其中包含一些项目 并且我向该新类型的结构添加了一个元素 typedef enum fo
  • 类模板参数推导 - clang 和 gcc 不同

    下面的代码使用 gcc 编译 但不使用 clang 编译 https godbolt org z ttqGuL template
  • 如何使用 ICU 解析汉字数字字符?

    我正在编写一个使用 ICU 来解析由汉字数字字符组成的 Unicode 字符串的函数 并希望返回该字符串的整数值 五 gt 5 三十一 gt 31 五千九百七十二 gt 5972 我将区域设置设置为 Locale getJapan 并使用
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • 如何从 appsettings.json 文件中的对象数组读取值

    我的 appsettings json 文件 StudentBirthdays Anne 01 11 2000 Peter 29 07 2001 Jane 15 10 2001 John Not Mentioned 我有一个单独的配置类 p
  • C# 中通过 Process.Kill() 终止的进程的退出代码

    如果在我的 C 应用程序中 我正在创建一个可以正常终止或开始行为异常的子进程 在这种情况下 我通过调用 Process Kill 来终止它 但是 我想知道该进程是否已退出通常情况下 我知道我可以获得终止进程的错误代码 但是正常的退出代码是什
  • C++ OpenSSL 导出私钥

    到目前为止 我成功地使用了 SSL 但遇到了令人困惑的障碍 我生成了 RSA 密钥对 之前使用 PEM write bio RSAPrivateKey 来导出它们 然而 手册页声称该格式已经过时 实际上它看起来与通常的 PEM 格式不同 相
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 如何将带有 IP 地址的连接字符串放入 web.config 文件中?

    我们当前在 web config 文件中使用以下连接字符串 add name DBConnectionString connectionString Data Source ourServer Initial Catalog ourDB P
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK
  • C# - OutOfMemoryException 在 JSON 文件上保存列表

    我正在尝试保存压力图的流数据 基本上我有一个压力矩阵定义为 double pressureMatrix new double e Data GetLength 0 e Data GetLength 1 基本上 我得到了其中之一pressur
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低
  • 对来自流读取器的过滤数据执行小计

    编辑问题未得到解答 我有一个基于 1 个标准的过滤输出 前 3 个数字是 110 210 或 310 给出 3 个不同的组 从流阅读器控制台 问题已编辑 因为第一个答案是我给出的具体示例的字面解决方案 我使用的实际字符串长度为 450 个

随机推荐

  • Django:使用电子邮件作为 USERNAME_FIELD 是否需要扩展 AbstractBaseUser?

    与许多其他人一样 我正在尝试将 Django 应用程序配置为使用电子邮件作为用户名字段 我有一些现有的用户帐户 已成功迁移到自定义用户模型 尽管现在自定义模型与 Django 用户模型相同 accounts models py from d
  • jquery img 选择

    我有一个 h4 里面有一个这样的 img 我将点击功能绑定到 h4 这效果很好 但我无法选择其中的img 我想选择 img 以便用 attr src replace up down 重新放置 src attr h4 class collap
  • UILabel中心内容

    这是我的代码 UILabel myLabel myLabel UILabel alloc initWithFrame CGRectMake 20 0 300 480 myLabel lineBreakMode UILineBreakMode
  • mod_rewrite 和 mod_userdir 的问题

    我正在尝试获取其他人组装的正在运行的网站的本地副本 该网站已部署并正常运行 我正在尝试在我的 public html 目录下设置开发版本 该站点使用 mod rewrite 通过执行各种初始化步骤的网关脚本重定向所有流量 我有一个奇怪的问题
  • Altair:如何在烛台图(即:分层图)上使用区间选择

    我正在尝试复制以下堆叠图表 可以通过与底部图表交互来选择顶部图表的域 但使用烛台图 这是一个分层图表 example code for below is here https altair viz github io gallery int
  • 函数向全局变量返回 2 个值

    鉴于这个帖子 https stackoverflow com questions 61217589 set 2 series at once我想问为什么下面的脚本适用于 a b 但不适合 c d 找不到任何文档来解释为什么这不起作用 此示例
  • 如何检查日期(来自日期选择器)是否在其他两个日期之间?目标-c

    我正在尝试从 UIDatePicker MM dd 格式 获取日期并检查它是否在其他两个日期的范围内 我尝试过很多不同的方式 但我想我的想法已经走得太远了 有人可以帮我做得尽可能简单吗 这是我最后一次尝试的代码 NSDateFormatte
  • 如何在没有窗口的情况下使用 Swift 检测 macOS 上的 Caps Lock 状态?

    我努力了KeyDown and NSEvent 但他们需要一个NSWindow对象处于活动状态 我希望我可以在状态栏上放置一个应用程序 并在按下时提醒用户CapsLock 即使用户在任何其他应用程序中 我的应用程序创意没有用于设置或其他任何
  • Mojolicious 基本登录

    我正在 Mojolicious 中寻找身份验证 我有 2 个页面 momcorp1 和 momcorp2 但我不能 在页面之间 有人知道如何做到这一点 我正在阅读有关 under 的内容 但我不知道如何做到这一点 另一种形式是使用 Mojo
  • 如何限制 NSTokenField 中的令牌数量?

    我有一个 NSTokenField 其中的令牌是在按 Enter 键时创建的 我想限制该字段中的令牌数量 举例来说 应该只允许用户依次输入 2 个令牌 之后 既不应该允许用户设置Token 也不应该允许用户进一步搜索 简而言之 用户应该在
  • 为什么通过 goto 向后移动时会调用析构函数[重复]

    这个问题在这里已经有答案了 可能的重复 会使用goto泄漏变量 https stackoverflow com questions 7334952 will using goto leak variables 在下面的例子中 当goto被称
  • 如何在 ASP.Net MVC 5 站点中设置 NameClaimType?

    我使用 Microsoft 的 本地 组织帐户身份验证机制创建了一个 ASP Net MVC 5 站点 这最终配置为指向我公司的 ADFS 基础设施 我正在取回所有配置的声明 但是 在运行时 ClaimsIdentity Name 为空 这
  • jquery .map 不适用于 IE 10

    我有这个 jquery 代码 tf zoom live click function var n tf thumbs find img attr src var modelid n substr 43 post models get gal
  • Dialogflow 实现 webhook url 支持自签名证书吗?

    我正在使用 Dialogflow 履行网络钩子来处理天气 Dialogflow 显示 启用 Google Assistant 集成后 您只能在履行网址中使用 https 所以 我尝试了 https url 的自签名证书 但我无法获得 web
  • 为 Telnet 会话创建脚本?

    有谁知道创建一个可以连接到 telnet 服务器的脚本的简单方法 执行一些常见的 telnet 操作 然后注销 我正在与不熟悉 telnet 及其需要运行的命令的用户打交道 我想要的只是让他们双击脚本 然后让该脚本自动为他们执行命令 您可能
  • 我可以在命令行上通过 xbuild 将参数传递给 msc 吗?

    xbuild 有没有办法通过命令行或构建脚本将附加参数传递给编译器 具体来说 我想通过 mcs debug 1获取堆栈跟踪内部编译器错误 https travis ci org libgit2 libgit2sharp builds 106
  • 如何将 SOAP 消息解析为 Jaxb 类

    我有一个 SOAPMessage 对象 我想将其解析并转换为一组 Jaxb 类 如何将消息转换为 Jaxb 可以解组的格式 javax xml bind Unmarshaller unmarshal SOAP 消息的正文包含实际数据及其要解
  • 如何在 CoreOS 的 Vagrant 虚拟机实例上运行 python?

    如何在 CoreOS 的 Vagrant 虚拟机实例上运行 python 我想访问 python 解释器 谢谢 您还可以安装python在 CoreOS 上使用下面的脚本 我们称之为install python sh bin bash e
  • PHP 联系表单在查看页面时发送空白电子邮件

    谁能帮助我阻止每次查看页面时发送空白电子邮件 这是我正在使用的代码
  • 指针减法不指向同一数组的不同元素在 C 中有效吗?

    指针减法不指向同一数组的不同元素在 C 中有效吗 下面的东西是否能保证按照 C 标准工作 我依稀记得读到这是无效的 int a int b a int 100 b int 200 printf d n b a 这会给我25吗 来自 C 规范