c语言如何用if语句判断数组是否为空字符

我是这样写的 if(a[x][y]=='\0') 我用断点调试每次运行到这里好像都会发生错误,不知道是不是我写错了,求解答
我把int型的a改为char型的了,数组为a[5][5],在执行到以下循环前x=4,y=3,但是用断点调试时发现明明a[x][y]=='\0'这个条件是真(说明:a[4][3]我没赋过值),但却去执行else的内容了
if(a[x][y]=='\0')
{
i=x;
j=y;
}
else i++;
}
其实不知道我要编什么的话估计也弄不清我的代码,所以之前都没发代码
#include<stdio.h>
int main()
{
int i=0,j=2,x,y,n=2;
char a[5][5];
a[0][2]=1;
for(n=2;n<=25,n++)
{
x=i;y=j;
x--;y++;
if(i==0&&j==4)
i++;
else
{
if(x<0) x=4;
if(y>4) y=0;
if(a[x][y]=='\0')
{
i=x;
j=y;
}
else i++;
}
a[i][j]=n;
}
for(i=0;i<=4;i++)
for(j=0;j<=4;j++)
{
printf("%5d",a[i][j]);
if(j%4==0) printf("\n");
}
return 0;
}

for(n=2;n<=25,n++) --- 逗号要改为分号。
char a[5][5]; 或 int a[5][5]; 放到 main() 以前,处理为全局量,编译时会初始化为0。(若作局部量,未赋值时,元素的值不是0,不是NULL,不是'\0'。难以判断是否为“空”)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-13
if(a[x][y]=='\0') 是判断数组是否到了末尾,空,NULL,宏定义为0
-物联网校企联盟技术部
第2个回答  2013-04-13
请楼主发详细代码?这样看看不出什么的!
第3个回答  2013-04-13
这样判断无问题,可能是x,y超界。
a是char型吗追问

a是int型的

追答

int型这样写没有意义,'\0'就是0,与==0是一样的
》》(说明:a[4][3]我没赋过值),但却去执行else的内容了
如果没赋过值,则是随机的(与编译器有关),这样判断不行。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网