i = 0, ++i 定义了吗?

2024-01-07

我最近了解到,运算符以及它引入了一个事实序列点.

我还了解到以下代码会导致未定义的行为:

i = ++i;

Because i在两个序列点之间修改了两次。

但是下面的代码呢?

i = 0, ++i;
i = (0, ++i);

虽然我知道规则,但我无法得出结论。那么它是否是定义的行为?

edit:正如@paxdiablo 提到的,定义或未定义,这确实是一个不好的做法应该避免这种情况。提出这个问题只是为了教育目的和更好地理解“规则”。


Yes. =优先级高于,,所以这个表达式等价于(i = 0), ++i. ,是一个序列点,因此可以保证++i发生在分配之后。

我不确定是否i = (0, ++i)虽然已定义。我的猜测是不会;增量和赋值之间没有序列点。

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

i = 0, ++i 定义了吗? 的相关文章

  • MySql 最后插入 ID,连接器 .net

    我正在使用 MySql Connector net 我需要获取最后一个查询生成的插入 id 现在 我假设返回值是MySqlHelper ExecuteNonQuery应该是最后一个插入id 但它只返回1 我正在使用的代码是 int inse
  • 如何启动异步任务对象

    我想开始收集Task同时处理对象并等待所有对象完成 下面的代码显示了我想要的行为 public class Program class TaskTest private Task createPauseTask int ms works w
  • 使用预编译头减少 clang 编译时间

    我正在开发一个数据库项目 该项目将查询 以某种高级语言表示 编译为 C 代码 这段代码由数据库编译并执行 那部分工作得很好 现在 我正在尝试减少 C 查询代码的编译时间 我想知道是否可以使用预编译头来提高性能 该查询被转换为一个名为 Que
  • C++:将模板参数的模板类型成员添加为好友的正确语法?

    我有一个带有模板类型参数 tTRAIT 的类 我想加一个模板为好友type member aliastTRAIT 但我无法弄清楚语法 这可能吗 template
  • 在不使用 ncurses 的情况下用 C/C++ 编写“真正的”交互式终端程序,例如 vim、htop...

    不 我不想使用ncurses 因为我想了解如何 终端可以工作 并且我自己编程也很有趣 没有 必须是可移植的 它必须只能在基于 linux xterm 的终端仿真器上工作 我想做的是编写一个交互式终端应用程序 例如 htop 和 vim 我的
  • 无缝滚动瓷砖地图

    我正在开发一个自上而下的角色扮演游戏 并且想要实现无缝滚动地图 也就是说 当玩家探索世界时 地图之间没有加载屏幕 也没有通往下一个区域的 门 我有两种方法可以打破世界 在顶层 我有 区域 它只是 9 个 地图 的集合 这些区域仅由目录表示
  • 在 C++ 中使用表达式模板进行符号微分

    如何在 C 中使用表达式模板实现符号微分 一般来说 您需要一种表示符号的方法 即编码的表达式模板 例如3 x x 42 以及一个可以计算导数的元函数 希望您对 C 中的元编程足够熟悉 知道这意味着什么和需要什么 但可以给您一个想法 This
  • 读取STM32 MCU SPI数据寄存器的值

    有很多类似的问题 但似乎没有一个问题完全相同 我正在将 STML4 MCU 连接到 6 轴传感器 LSM6DS3 我已经成功地在 I2C 中实现了所有内容 但想要 SPI 的额外速度 和 DMA 如果我能让这些第一步工作起来的话 因此 第一
  • WinForms - 表单大小错误

    我们有以下代码 private void MainForm Shown object sender EventArgs e RepositionForm private void RepositionForm Rectangle rect
  • C++:初始化静态字符串成员

    我在 C 中初始化静态字符串成员时遇到一些问题 我有几个类 每个类都包含几个表示 id 的静态字符串成员 当我通过调用静态函数初始化变量时 一切都很好 但是 当我想为一个变量分配另一个变量的值时 它仍然保留空字符串 这段代码有什么问题 st
  • 命名空间“Microsoft”中不存在类型或命名空间名称“Practices”

    我正在使用 Microsoft Visual Studio 2005 for c 我的代码中有以下命名空间 using Microsoft Practices EnterpriseLibrary using Microsoft Practi
  • 如何填充两个样条线或直线系列之间的区域

    我有这个Chart 如何填充两个之间的区域Series S0 and S1 说蓝色和黄色Series 为此 我们编写了其中之一Paint事件 这里的ValueToPixelPosition https msdn microsoft com
  • ASP.NET MVC 路由 - 向路由添加 .html 扩展名

    我对 MVC 和路由非常陌生 我被要求修改一个应用程序以使用不同的 url 由于我没有经验 这项任务对我来说有点困难 好吧 让我们谈谈一些代码 routes MapRoute CategoryBySeName Route name prod
  • 按值返回的函数的返回语句中的初始化

    我的问题源于深入研究std move in return语句 例如以下示例 struct A A std cout lt lt Constructed lt lt this lt lt std endl A A noexcept std c
  • ASP.NET MVC 中 ModelState.AddModelError 中的关键参数有什么意义?

    我在我的控制器中添加了验证检查来修改ModelState如果验证失败 例如 private bool ValidateMoney string raw string name decimal min decimal max try var
  • SQL参数化查询不显示结果

    我的 DataAcess 类中有以下函数 但它没有显示任何结果 我的代码如下 public List
  • 该组件没有由 uri 标识的资源

    我想创建一个通用数据网格以在我的所有视图 用户控件上使用 这是我的结构 Class Library called Core Class called ViewBase public class ViewBase UserControl pu
  • TreeView:仅在子节点中存在复选框

    我需要一个树视图控件 根节点没有复选框 只有图像 所有子节点都有一个复选框 图像 C net 2 0 winforms 不是 wpf WinForms树视图默认不支持混合复选框 非复选框节点 您可以在树视图上全局启用复选框 并使用以下命令在
  • EWS - 给予预约,获取预约的所有者副本

    在 EWS 中进行预约后 是否可以获得所有者的副本 例如 如果我登录为user1 我有user1创建的约会的副本user2 我有冒充权 我要编辑user2预约的副本 我怎样才能获得user2 s copy 您可以使用 PidLidClean
  • OpenGL 计算着色器调用

    我有一个与新计算着色器相关的问题 我目前正在研究粒子系统 我将所有粒子存储在着色器存储缓冲区中 以便在计算着色器中访问它们 然后我派遣一个一维工作组 define WORK GROUP SIZE 128 shaderManager gt u

随机推荐

  • 如何转换 Shapefile 的坐标?

    我正在尝试将邻居数据放入我的应用程序中 但我使用的数据存在问题 这些数据是我从here http gispub02 sfgov org website sfshare catalog realtor neighborhoods zip 该文
  • 如何在 Swift 中重写 setter

    超类 class MySuperView UIView var aProperty 子类继承超类 class Subclass MySuperClass I want to override the aProperty s setter g
  • Fluent-bit 可以解析一个文件中的多种类型的日志行吗?

    我在 k8s 中有一个相当简单的 Apache 部署 使用 Fluent bit v1 5 作为日志转发器 我的设置与下面存储库中的设置几乎相同 我正在运行 AWS EKS 并将日志输出到 AWS ElasticSearch Service
  • 更新新版本应用程序时删除sqlite数据库

    我已经上传了一个 apk 版本 1 0 其中有 22 个表SQLite数据库在 Google Play 商店上 现在我想在新版本 2 0 版 应用程序中更新包含 36 个表的数据库 我正在存储datebase在默认位置 所以当我按时 清除
  • Lua 中的 ISO 8601 时间戳

    如何将时间戳转换为 ISO 8601 格式 例如2009 01 28T21 49 59 000Z 在 Lua 中 我专门尝试使用HttpLua模块 http wiki nginx org HttpLuaModule在 Nginx 中 Try
  • JAI create 似乎使文件描述符保持打开状态

    我有一些旧代码直到最近才工作 但现在似乎很糟糕 因为它在使用 OpenJDK 6 而不是 Java SE 6 的新服务器上运行 问题似乎围绕着 JAI create 我有 jpeg 文件 我将其缩放并转换为 png 文件 这段代码过去工作时
  • ClassNotFoundException:重建后的 org.springframework.cglib.transform.impl.MemorySafeUndeclaredThrowableStrategy

    当尝试在 Tomcat 上运行我的项目时 我遇到了这个奇怪的错误 直到几天前 一切都还好 从那以后我就没有改变过任何一行代码 在一切开始失败之前我做的唯一一件事是 Maven 上下文菜单中的 更新项目 Aug 21 2013 4 39 48
  • HTML 自动嵌入最近从 YouTube 频道上传的视频

    我想知道是否有办法将最近上传的内容从 YouTube 频道自动嵌入到网站 我什至不知道从哪里开始 帮助 使用以下代码通过指定频道 ID 而不是频道名称来自动嵌入 YouTube 频道的最新视频 var channelID UC0xXUfNS
  • 是否可以在 macOS 上以编程方式更改 XDR 显示参考模式(又名预设)?

    Apple 的 XDR 显示器 例如 Pro Display XDR 和 Liquid Retina Display XDR 支持显示参考模式 也称为预设 这些可以在 系统首选项 gt 显示 gt 显示设置 gt 预设 中进行更改 选择 X
  • 在 Laravel 5.4 中将外键 bigInteger 设置为 bigIncrements

    因此 我尝试在 Laravel 的迁移文件中设置外键 以便用户表很简单 但我尝试使用 bigIncrements 而不是立场增量 public function up Schema create users function Bluepri
  • 将数据表拆分为小表 R

    我有一个下表 超过 1k 行 x1 x2 x3 x4 7809 243638 1 1 7809 243638 1 1 7809 243638 1 1 3453 222222 1 0 我需要根据第二列将此表拆分为小表 将在我的环境中作为数据框
  • 确保 CSV 输出中保留长数字

    我有一个 R 数据框 需要保存为 csv 文件 但是在保存为 csv 文件时 一个数字列会更改其格式 我有一个名为 ID 的字符列 如下所示 df lt data frame ID as character 1181050000000002
  • 将新选项卡添加到选项卡栏控制器

    我正在创建一个标签栏 iOS 应用程序 选项卡栏视图控制器有两个选项卡 每个选项卡都连接到一个视图控制器 它看起来是这样的 我需要向选项卡控制器添加更多选项卡 我在故事板中这样做如下 我添加了一个新的视图控制器 我按住 Control 键并
  • 从控制器重定向到项目外部的不同 URL

    我如何从我的控制器重定向到不同的网址 例如 yahoo com hotmail com 我正在使用 Spring 3 0 并使用配置而不是注释 我忘记提及的一件事是 url 将是用户输入 因此无法将其添加到配置中 谢谢 高卢人 您可以在控制
  • 如何强制应用程序更改 iOS/Objective-C 中的语言?

    我在让应用程序立即更改语言时遇到问题 例如this app https itunes apple com app zalo nhan tin kieu moi id579523206 mt 8 我发现了很多类似的问题this https s
  • subprocess.check_output() 没有输出

    我正在尝试在 Python 2 7 5 中运行以下代码 output subprocess check output commandList print len output 我的命令列表是一个参数列表 例如 ls l 但后来我发现即使我有
  • 在magento2中运行时设置包和主题

    我的包名称是 company 主题名称是 web 我还有另一个名为 system 的包 其主题名为 component 运行时来自块文件 但我想从 magento2 的前端设置该主题和包 如果您想在 magento 中运行时设置包和主题 只
  • 无法通过更改宽度或 Flex-basis 来隐藏 Flex 项目

    我想达到这样的效果 在默认状态下 有四个按钮 其中之一是 移动 按钮 当用户单击它时 我想展开按钮并显示其他文本和输入 但是我无法达到 默认状态 收件人 总是出现 我努力了flex basis and width 0px但没有效果 就像这样
  • 如何检测SearchView后退按钮按下?

    我使用单个活动来显示 SearchView 以及显示搜索结果 搜索结果只是项目的子集 因此搜索充当过滤器 一切似乎都工作正常 除了我不知道如何在单击 SearchView 的后退按钮时恢复视图中的所有项目 或者也许还有另一种方法来检测用户何
  • i = 0, ++i 定义了吗?

    我最近了解到 运算符以及它引入了一个事实序列点 我还了解到以下代码会导致未定义的行为 i i Because i在两个序列点之间修改了两次 但是下面的代码呢 i 0 i i 0 i 虽然我知道规则 但我无法得出结论 那么它是否是定义的行为