在 C 中,const 变量是否保证在内存中不同?

2023-12-29

说到字符串文字,C99 标准规定 (6.4.5.6):

如果这些数组的元素具有适当的值,则未指定这些数组是否不同。如果程序尝试修改这样的数组,则行为是未定义的。

我找不到类似的警告或对 const 变量的明确保证。可以表达一下&x == &y在上下文中const int x=12; const int y=12;评估为1? const 变量和字符串文字怎么样(即&x == "\014\000\000"保证是0即使在 32 位小端平台上)?

对于它的价值,“字符串文字”部分这篇博文 http://blog.frama-c.com/index.php?post/2011/06/04/Valid-compare-pointers给出问题的背景。


据我所知,标准不允许任何类型的两个命名对象具有相同的地址(联合成员除外)。从 6.5.9/6 开始:

两个指针比较相等当且仅 如果两者都是空指针,则两者都是 指向同一个对象的指针...

字符串文字不是 const 变量,因此您的第二个问题没有实际意义,而且我不明白 32 位和字节序与它有什么关系。

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

在 C 中,const 变量是否保证在内存中不同? 的相关文章

随机推荐

  • 如何获取Windows系统中的剩余电池寿命?

    我需要获取 Windows 系统中的剩余电池寿命 我该怎么做 我猜你说的是笔记本电脑 标准 Java SE API 中不存在这样的 API 此信息仅在操作系统平台本机 API 中可用 你至少需要JNI https docs oracle c
  • iOS - 理解 UIPanGesture 上的velocityInView

    我正在使用 UIPanGesture 返回velocityInView 根据我的收集 它应该每秒返回点数 我得到的是数亿的数字和很多零 我不会在模拟器中快速移动鼠标 我认为 预先感谢您提供的任何帮助 建议 编辑 请求的代码 显示 呼叫 vo
  • PHP 数字格式

    我有这个字符串 000000000000100 并需要将其转换为 1 00 所以 规则是 将数字除以 100 并使用逗号作为小数分隔符 去掉前导零 保留两位小数 来自PHP 手册页面number format http php net ma
  • 为什么 std::cout << main << std::endl 打印 1? [复制]

    这个问题在这里已经有答案了 include
  • 添加服务引用和添加 Web 引用?

    我正在尝试添加对网络服务的网络引用 http jira atlassian com rpc soap jirasoapservice v2 wsdl http jira atlassian com rpc soap jirasoapserv
  • Kubectl获取节点返回“服务器没有资源类型“节点””

    我安装了 Kubernetes 并执行了 kubeadm init 并从工作线程加入 但是当我运行 kubectl getnodes 时它给出以下响应 服务器没有资源类型 节点 这里可能有什么问题 在 var log messages 中看
  • Linq to XML 简单从节点语句获取属性

    这是代码片段 XDocument themes XDocument Load HttpContext Current Server MapPath Models Themes xml string result var childType
  • 在给定文本中查找 PHP 中特定文本的模式[重复]

    这个问题在这里已经有答案了 我很难找到特定的对象preg match all图案 我有一条文字 很多数据 但我只想找到一个特定的 就像我有一串文本 sadasdasd website https bitcoin org tatic clou
  • C++:如何在 Windows 的“开始”菜单中创建快捷方式

    我想知道如何获取 Windows 上开始菜单文件夹的路径 然后创建可能包含非 ASCII 字符的路径的快捷方式 这是解决方案 它使用 Qt 但也可以不使用 然后只需使用std wstring代替QString 为了连接路径和文件名 您将不得
  • 确定 SQLite 中查询的执行时间

    我正在创建一个用于分析和生成查询的程序 我很好奇 SQLite 中当前是否存在一种方法 以便我可以查询处理查询所需的时间 我无法以任何方式修改我的安装 因此此方法需要开箱即用 我正在用 python 编写我的工具 尽管我想我可以使用计时器类
  • 如何在Delphis MessageDlg中忽略计时器事件

    我在 Delphi 中设置了一个全局异常处理程序 在某些严重的异常情况下 会显示一条错误消息 后跟 Halt 显示错误消息时 Delphi 正在处理消息队列 处理计时器事件 这会导致进一步的错误 我想要的是显示一个不处理计时器事件的错误对话
  • 在进行一些 python 分析后,Django(?)在处理大型数据集时速度非常慢

    我正在将我的旧 PHP 脚本与更新 更精美的 Django 版本和 PHP 脚本进行比较 完全脱离 HTML 并且所有功能都运行得更快 速度快得多 以至于 Django 肯定出了问题 首先 一些背景信息 我有一个页面可以输出销售数据报告 数
  • html5 如何将一个 SVG 变形或动画为另一个?

    我做了一些搜索 但我不得不承认 我对 SVG 没有任何经验 我见过很多现代库 例如 Raphael PaperJS KineticJS EaselJS 但我不知道什么适合这里的目标 也许甚至 CSS 关键帧也能做到这一点 对于这个问题的指出
  • 使用 Javascript 更改元素的 onfocus 处理程序?

    我有一个表单 其中的默认值描述了应该输入该字段的内容 替换标签 当用户聚焦某个字段时 将调用此函数 function clear input element element value element onfocus null onfocu
  • 在哪里可以找到要使用 LDAP 过滤器搜索的完整属性列表?

    作为我的问题的延伸here https stackoverflow com questions 24649579 searching directoryservices to return a list of modified users
  • Jersey 2 中的自定义 MOXyJsonProvider 不起作用?

    我正在阅读答案Moxy 忽略 json 中的无效字段 https stackoverflow com questions 27658173 moxy ignore invalid fields in json该方法与我想做的事情相匹配 所以
  • Wix Bundle源码路径和项目结构

    我正在尝试创建一个引导程序安装程序 它将安装我的应用程序以及运行我的应用程序所需的第三方应用程序 第三方应用程序是一个 exe 包 其中包含许多补充文件 我的问题是 如何将第三方应用程序包含到我的捆绑包中 我是否也必须添加所有补充文件 10
  • 使用nodejs和redis进行发布订阅(node_redis)

    我正在尝试使用 nodejs 和 node redis 构建一个通用的发布 订阅服务器 该服务器接收来自浏览器的带有通道名称的请求 并响应该通道已发布的任何数据 为此 我使用来自浏览器的长轮询请求 并通过在通道上收到消息时发送响应来处理这些
  • Java:int数组用非零元素初始化

    据 JLS 称 int初始化后数组应立即用零填充 然而 我面临的情况并非如此 这种行为首先出现在 JDK 7u4 中 并且也出现在所有后续更新中 我使用 64 位实现 下面的代码抛出异常 public static void main St
  • 在 C 中,const 变量是否保证在内存中不同?

    说到字符串文字 C99 标准规定 6 4 5 6 如果这些数组的元素具有适当的值 则未指定这些数组是否不同 如果程序尝试修改这样的数组 则行为是未定义的 我找不到类似的警告或对 const 变量的明确保证 可以表达一下 x y在上下文中co