百思不得其解,大脑都死循环了,求救!!
int NUM=10;
int ja[10][10]={0};
for(int i=0;i<10;i++)
for(int j=0;j<10;j++)
ja[i][j]=j+1;
int *p=&ja[0][0];
while(NUM)
{
p=p+5;//过两次循环后后这里按理说会进入if,可在调试器里直接进入for了.而且*p为1.
if(*p==0)
{
while(*p)
{
p+=1;
}
}
else
{
for(int i=0;i<10;i++)
{
ja[i][*p]=0;
}
}
NUM--;
}
[解决办法]
LZ定义的二维数组,实际上是100个数字的1维数组,第一次将所有二维在5的数设置成了1,但是这个时候p+=5,的话,移动到了第二行的第一个数字,这个时候这个数值还是1,而你在你的for循环中用的是ja[i][*p],所以你设置的是每行的第1个数,而不是第0个数,第0个数还是原来的1,不会变的,肯定进不到你的if语句里面了!