真是见鬼了,这几行代码为何陷入了死循环???
int howmany;
if((rcany1==5)&&(rcanx1>bkinx0))
{
howmany=0;
for(int hh=bkinx0+1;hh++;hh=rcanx1-1)
{
if(position[hh-1][4]!=NOCHESS)
howmany++;
}
}
在走到这行代码以前
跟踪到的变量值是rcany1=5,rcanx1=8,bkinx0=1,NOCHESS是常数0;二维数组position中,与这里有关的position[2][4]=0,position[3][4]=0,position[4][4]=0,position[5][4]=0,position[6][4]=0,position[7][4]=1,
按说应该是得出howmany是1啊!!!!!
为何陷入了死循环?howmany数值越来越大了,
我在程序中前面根本没有使用hh这个变量,
可跟踪到的hh=8,
我把程序改成了这样初始化hh:
int hh;
hh=0;
for(hh=bkinx0+1;hh++;hh=rcanx1-1)
{
if(position[hh-1][4]!=NOCHESS)
howmany++;
}
hh 仍然是8,赋完值前后都是8,而且循环中一直是8!!!!!!!!
怎么回事呢,真是见鬼了?