gpt4 book ai didi

c - C中的预增量操作

转载 作者:太空宇宙 更新时间:2023-11-04 06:28:00 25 4
gpt4 key购买 nike

我刚刚开始使用 C 语言编写游戏编程教程的初学者指南。我对下面的代码有些困惑。

在主 gameOverTick 设置为零,然后我们有一个游戏结束的情况

case GAME_OVER:
printStatus("GAME OVER!!! The evil DarkLord was defeated");
if (++gameOverTick % 100 == 0){
status = PRINT_GAME_WELCOMESCREEN; // go back to welcome screen
gameOverTick = 0; // reset gameOverTick
}

我只想知道++(pre-inc)操作对 gameOverTick 有什么作用。它是在检查 if 时将 gameOverTick 设置为 1,还是以某种方式将其设置为 0。我知道 post-inc++ 是如何工作的,但这对我来说是一个新的。

谢谢

最佳答案

我们这里有四个答案,它们都以同样的方式错了。让我确保您清楚这一点:那些告诉您运算符的优先级决定子表达式计算结果的副作用发生顺序的人是完全错误的。在 C 中,计算子表达式的顺序不受优先级控制;它在很大程度上是未定义的。 (在 C# 和 Java 中,定义的不是优先顺序,而是从左到右。)

在这里的特定情况下,必须在 % 发生之前计算 ++ 操作的,但是 ++ 操作关联的赋值 可以随时发生。在您的特定情况下,分配何时发生并不重要,但很容易构造它确实重要的情况。

关于c - C中的预增量操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23805021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com