代码显示 int j=1;调试器说 j=3 (C++)

问题描述 投票:0回答:1

老实说,问题很简单,但我不知道如何解决。在我的程序中,该行显示 int j=1;但调试器说它等于 3。我什至将 int j 从循环中取出来突出显示该问题。这是一些奇怪的编译器优化还是什么?

左侧的调试器和突出显示的行:

Debugger on the left and line highlighted

我尝试将 j 从循环中拉出,看看是否有任何变化,但没有变化。这是一个 leetcode 问题(跳跃游戏),我的方法是查看 nums 数组中是否有零,如果有零,考虑到该值的索引,看看是否有一个值可以跳过它和零的索引。该程序适用于大多数情况,但如果 nums = {2, 0, 0} 则失败。

c++ integer compiler-optimization
1个回答
0
投票

这是一些奇怪的编译器优化还是什么?

您还没有执行该语句。执行后,

j
会变成
1

突出显示的行显示接下来要执行的语句。不是已经执行的。

© www.soinside.com 2019 - 2024. All rights reserved.