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

我是这样写的if(a[x][y]=='\0')我用断点调试每次运行到这里好像都会发生错误,不知道是不是我写错了,求解答我把int型的a改为char型的了,数组为a[5][... 我是这样写的 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;
}
展开
 我来答
金色潜鸟
推荐于2017-09-19 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5697万
展开全部
for(n=2;n<=25,n++) --- 逗号要改为分号。
char a[5][5]; 或 int a[5][5]; 放到 main() 以前,处理为全局量,编译时会初始化为0。(若作局部量,未赋值时,元素的值不是0,不是NULL,不是'\0'。难以判断是否为“空”)
冰是沉默的水3
2013-04-13 · TA获得超过909个赞
知道小有建树答主
回答量:473
采纳率:50%
帮助的人:142万
展开全部
if(a[x][y]=='\0') 是判断数组是否到了末尾,空,NULL,宏定义为0
-物联网校企联盟技术部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-13
展开全部
请楼主发详细代码?这样看看不出什么的!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
niaoshiga4
2013-04-13 · TA获得超过217个赞
知道小有建树答主
回答量:250
采纳率:0%
帮助的人:201万
展开全部
这样判断无问题,可能是x,y超界。
a是char型吗
追问
a是int型的
追答
int型这样写没有意义,'\0'就是0,与==0是一样的
》》(说明:a[4][3]我没赋过值),但却去执行else的内容了
如果没赋过值,则是随机的(与编译器有关),这样判断不行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式