for (i=0;i<3;i++)
{
if(z == 3)
{
z = 0;
}
z++;
if(!(ar[i][z] == 'X') & (z < 3))
winrow == 0;
}
当我逐行调试程序时,跳过第二个if语句。 一切都已初始化,这只是一个片段。 它之所以这么做的原因是什么?
答案 0 :(得分:3)
winrow == 0
是一个没有副作用的拼写错误,因此无论if
子句是否为真,都无法执行。
答案 1 :(得分:1)
你说的是:
winrow == 0;
在你的if语句的正文中。这个陈述什么都没有,它没有分配给任何东西,它没有副作用。因此编译器可能(优化时)将跳过它。您可以说winrow = 0;
,将0分配给winrow
。
答案 2 :(得分:0)
可能你的病情错了。这是你试图得到的吗?
if (ar[i][z] != 'X' && z < 3)
答案 3 :(得分:0)
代码的第二部分没有做任何事情。
winrow == 0
检查winrow是否等于0,并且只要您点击括号,该语句就会超出范围。