C语言中,如何判断一个字符数组是空的?

1、字符数组不等价于char字符串指针的

作为数组的时候,定义多长,内存分配空间就是多长
作为char字符串指针,尾部是自动增加了一个\0字符的

这个就是你用\0作为结束判断找不到正确结束位置的原因
字符数组是否为空是要自己定义空的概念的

如果你的定义是把字符数组当中字符串来理解的话,第一个元素是否是\0字符就是判断准则了(可以用src[0] == '\0'来判断字符串数组是否为空)


2、你定义的数组,就象开了一排5个房间,不管你有没有用,这5个房间都已经分配给你了,没什么空不空的概念,你可以不去住,但空间已经在那里了,里面怎么会没有任何元素呢?难道是真空?嘿嘿.
至于里面到底是什么东西,要看编译器怎么处理了,也可能是随机的数据,因此对程序员来讲是不可预料的,也不可能通过NULL或'\0'去检查.


3、其是数组没有为空的,只要你申请了空间(数组一定以就在栈上有自己的空间),空间里就有数据,可以输出.然而:

你用memset把数组空间全部赋值为0了,是可以判断的.但是需要判断空间的内容,即:a[i].word[0]
a[i].word是数组word[20]的首地址,当然不会为0,或者‘\0’

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值