序列点 问答列表

为什么这些构造使用增量前和增量后未定义的行为?

作者:PiX 提问时间:6/4/2009

#include <stdio.h> int main(void) { int i = 0; i = i++ + ++i; printf("%d\n", i); // 3 i = 1; ...

为什么这些构造使用增量前和增量后未定义的行为?

作者:PiX 提问时间:6/4/2009

#include <stdio.h> int main(void) { int i = 0; i = i++ + ++i; printf("%d\n", i); // 3 i = 1; ...

为什么这些构造使用增量前和增量后未定义的行为?

作者:PiX 提问时间:6/4/2009

#include <stdio.h> int main(void) { int i = 0; i = i++ + ++i; printf("%d\n", i); // 3 i = 1; ...

为什么这些构造使用增量前和增量后未定义的行为?

作者:PiX 提问时间:6/4/2009

#include <stdio.h> int main(void) { int i = 0; i = i++ + ++i; printf("%d\n", i); // 3 i = 1; ...

为什么这些构造使用增量前和增量后未定义的行为?

作者:PiX 提问时间:6/4/2009

#include <stdio.h> int main(void) { int i = 0; i = i++ + ++i; printf("%d\n", i); // 3 i = 1; ...

为什么这些构造使用增量前和增量后未定义的行为?

作者:PiX 提问时间:6/4/2009

#include <stdio.h> int main(void) { int i = 0; i = i++ + ++i; printf("%d\n", i); // 3 i = 1; ...

赋值运算符是 C++17 下的序列点吗?这种表达的结果会是什么?

作者:Maestro 提问时间:8/1/2022

建议不要在单个表达式中多次修改对象,也不要在同一表达式中修改对象后再使用它。 int i = 0; ++++i; // UB ++i = i++; // OK? 我认为最后一个表达式是 C...

赋值运算符中的序列点

作者:andre3312 提问时间:5/5/2016

我已经检查了其他一些答案,例如: 赋值运算符中的序列点 或 未定义的行为和序列点 但我对以下部分仍有一些疑问: 在所有情况下,赋值都是在右操作数和左操作数的值计算之后,在赋值表达式的值计算之...

未定义的行为和重新加载的序列点

作者:Nawaz 提问时间:1/9/2011

将本主题视为以下主题的续集: 上一期 未定义的行为和序列点 让我们重温一下这个有趣而复杂的表达方式(斜体短语取自上面的主题*微笑*): i += ++i; 我们说这调用了未定义的行为。我假设...

什么是序列点,它们与未定义的行为有何关系?

作者: 提问时间:11/14/2010

什么是“序列点”? 未定义行为和序列点之间有什么关系? 我经常使用有趣而复杂的表达方式,比如,让自己感觉更好。我为什么要停止使用它们?a[++i] = i; 如果您已阅读本文,请务必访问后续问题...


共13条 当前第1页