c - x++ 的增量操作何时发生?

标签 c operators

我知道x++指的是后增量。它首先使用原始值,然后使用增量值。

但是什么时候才会真正发生呢? 当执行代码中的下一个立即行时会发生这种情况吗? 原值返回一次会出现这种情况吗?

最佳答案

它发生在序列点之间。

除此之外,具体发生时间尚未确定。

想象一下这个

x = y = z = 42
; // sequence point A
n = x++ + y++ + z++
; // sequence point B

依次。 A点x、y、z均为42;在序列点 B 处,它们都是 43。无论您关心什么,编译器都可以发出代码来同时更新所有 3 个变量。

// pseudo code
n = 126;
[vector increment][x,y,z];
//n = 126;

关于c - x++ 的增量操作何时发生?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55712606/

相关文章:

c - 对齐宏内核

java - 为什么 op-assign 运算符在 java 中不是类型安全的?

chdir() 不影响环境变量 PWD

c - 如何绘制一个 ds 的子显示器,就好像它是一个帧缓冲区一样?

c# - 运算符 == 不能应用于 C# 中的泛型类型吗?

operators - 为什么 Io REPL 和解释器给我两个不同的值?

c++ - 运算符重载的基本规则和惯用法是什么?

c - C 中的链表 – 方法

c - 在 C 中使用 SSE/SSE2 内在函数处理字节像素

c - 在C中,多次声明一个变量有效吗?