指针减法不指向同一数组的不同元素在 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 中有效吗? 的相关文章

  • 无法使用已与其底层 RCW 分离的 COM 对象。在 oledb 中

    我收到此错误 但我不知道我做错了什么 下面的代码在backrgroundworker中 将异常详细信息复制到剪贴板 System Runtime InteropServices InvalidComObjectException 未处理 通
  • 是否可以强制 XMLWriter 将元素写入单引号中?

    这是我的代码 var ptFirstName tboxFirstName Text writer WriteAttributeString first ptFirstName 请注意 即使我使用 ptFirstName 也会以双引号结束 p
  • 未解决的包含:“cocos2d.h” - Cocos2dx

    当我在 Eclipse 中导入 cocos2dx android 项目时 我的头文件上收到此警告 Unresolved inclusion cocos2d h 为什么是这样 它实际上困扰着我 该项目可以正确编译并运行 但我希望这种情况消失
  • Newtonsoft JSON PreserveReferences处理自定义等于用法

    我目前在使用 Newtonsoft Json 时遇到一些问题 我想要的很简单 将要序列化的对象与所有属性和子属性进行比较以确保相等 我现在尝试创建自己的 EqualityComparer 但它仅与父对象的属性进行比较 另外 我尝试编写自己的
  • 将布尔参数传递给 SQL Server 存储过程

    我早些时候问过这个问题 我以为我找到了问题所在 但我没有 我在将布尔参数传递给存储过程时遇到问题 这是我的 C 代码 public bool upload false protected void showDate object sende
  • 为什么#pragma optimize("", off)

    我正在审查一个 C MFC 项目 在某些文件的开头有这样一行 pragma optimize off 我知道这会关闭所有以下功能的优化 但这样做的动机通常是什么 我专门使用它来在一组特定代码中获得更好的调试信息 并在优化的情况下编译应用程序
  • C - 找到极限之间的所有友好数字

    首先是定义 一对友好的数字由两个不同的整数组成 其中 第一个整数的除数之和等于第二个整数 并且 第二个整数的除数之和等于第一个整数 完美数是等于其自身约数之和的数 我想做的是制作一个程序 询问用户一个下限和一个上限 然后向他 她提供这两个限
  • 在 ASP.NET Core 3.1 中使用包含“System.Web.HttpContext”的旧项目

    我们有一些用 Net Framework编写的遗留项目 应该由由ASP NET Core3 1编写的API项目使用 问题是这些遗留项目正在使用 System Web HttpContext 您知道它不再存在于 net core 中 现在我们
  • 如何将单个 char 转换为 int [重复]

    这个问题在这里已经有答案了 我有一串数字 例如 123456789 我需要提取它们中的每一个以在计算中使用它们 我当然可以通过索引访问每个字符 但是如何将其转换为 int 我研究过 atoi 但它需要一个字符串作为参数 因此 我必须将每个字
  • Qt表格小部件,删除行的按钮

    我有一个 QTableWidget 对于所有行 我将一列的 setCellWidget 设置为按钮 我想将此按钮连接到删除该行的函数 我尝试了这段代码 它不起作用 因为如果我只是单击按钮 我不会将当前行设置为按钮的行 ui gt table
  • 当操作繁忙时,表单不执行任何操作(冻结)

    我有一个使用 C 的 WinForms 应用程序 我尝试从文件中读取一些数据并将其插入数据表中 当此操作很忙时 我的表单冻结并且无法移动它 有谁知道我该如何解决这个问题 这可能是因为您在 UI 线程上执行了操作 将文件和数据库操作移至另一个
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at
  • 将 unsigned char * (uint8_t *) 转换为 const char *

    我有一个带有 uint8 t 参数的函数 uint8 t ihex decode uint8 t in size t len uint8 t out uint8 t i hn ln for i 0 i lt len i 2 hn in i
  • 控制到达非 void 函数末尾 -wreturn-type

    这是查找四个数字中的最大值的代码 include
  • 如何让Gtk+窗口背景透明?

    我想让 Gtk 窗口的背景透明 以便只有窗口中的小部件可见 我找到了一些教程 http mikehearn wordpress com 2006 03 26 gtk windows with alpha channels https web
  • Validation.ErrorTemplate 的 Wpf 动态资源查找

    在我的 App xaml 中 我定义了一个资源Validation ErrorTemplate 这取决于动态BorderBrush资源 我打算定义独特的BorderBrush在我拥有的每个窗口以及窗口内的不同块内
  • mysql-connector-c++ - “get_driver_instance”不是“sql::mysql”的成员

    我是 C 的初学者 我认为学习的唯一方法就是接触一些代码 我正在尝试构建一个连接到 mysql 数据库的程序 我在 Linux 上使用 g 没有想法 我运行 make 这是我的错误 hello cpp 38 error get driver
  • C 中的异或运算符

    在进行按位操作时 我在确定何时使用 XOR 运算符时遇到一些困难 按位与和或非常简单 当您想要屏蔽位时 请使用按位 AND 常见用例是 IP 寻址和子网掩码 当您想要打开位时 请使用包含或 然而 XOR 总是让我明白 我觉得如果在面试中被问
  • 如何在 C++ BOOST 中像图形一样加载 TIFF 图像

    我想要加载一个 tiff 图像 带有带有浮点值的像素的 GEOTIFF 例如 boost C 中的图形 我是 C 的新手 我的目标是使用从源 A 到目标 B 的双向 Dijkstra 来获得更高的性能 Boost GIL load tiif
  • 使用 libcurl 检查 SFTP 站点上是否存在文件

    我使用 C 和 libcurl 进行 SFTP FTPS 传输 在上传文件之前 我需要检查文件是否存在而不实际下载它 如果该文件不存在 我会遇到以下问题 set up curlhandle for the public private ke

随机推荐

  • 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 规范