C++比较和减少变量

unp*_*pix 0 c++ variables comparison

 if(y-- > 0 && matriz[x][y--]!=9 && matriz[x][y--]!=0)
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我的变量y不会递减,对吧?我可以做这个比较y--> 0

想象一下,我有y = 0,我想比较-1> 0.

谢谢

GMa*_*ckG 5

假设所有测试都通过,您的代码实际上等效于此:

if (y > 0)
{
    y--; // post-decrement

    if (matriz[x][y] != 9)
    {
        y--; // post-decrement

        if (matriz[x][y] != 0)
        {
            y--; // post-decrement

            // all true
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果有任何失败,你仍然会减少(等价将在else子句中),但为了简洁我省略了.

希望这足以澄清.我发现它非常笨拙,如果y < 2在开始时你最终会得到负面指数,这可能是一件坏事.

  • 您的代码不相同.考虑启动条件`y == 0`. (3认同)