为什么字符数组需要以'\0'结束,而数值数组就不需要呢

a[]={'a,''b','c'}其实这个有'\0'吧,那么'\0'在哪请详细介绍字符数组和字符串数组的区别... a[]={'a,''b','c'} 其实这个有'\0' 吧,那么'\0'在哪
请详细介绍字符数组和字符串数组的区别
展开
 我来答
morebread
推荐于2016-11-22 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:117
采纳率:0%
帮助的人:125万
展开全部
a[]={'a,''b','c'} 其实等于a[]={'a,''b','c','\0'};
你要是用sizeof(a)看的话其大小是等于4
由于很多字符串处理函数和宏,如strcpy,memcpy之类的都是以字符串的结束符作为函数完成的终点,所以字符串数组都要以结束符结束。
其实数值数组也是一样的,要是没有结束符也会越界,只是数值数值一般不会被用在strcpy之类函数中。
风晴雨M
推荐于2018-04-30 · TA获得超过428个赞
知道小有建树答主
回答量:289
采纳率:100%
帮助的人:316万
展开全部
a[]={'a,''b','c'} 这是字符数组 没有什么'\0',只有字符串的话 系统给它分配内存的时候会加一个结束符'\0'
像这个 char a[]={"abc"} 那才有'\0'
字符是单引号 字符串是双引号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
陈志强661224
2010-12-15 · TA获得超过394个赞
知道答主
回答量:176
采纳率:0%
帮助的人:246万
展开全部
LZ可以这样思考:为什么字符串要有终结符? 就会很好理解。
只有字符串才会默认的在后面加上\0,即使是字符数组也是在赋值的时候\0从字符串里面拷贝过去的例如:
char s[] = "adfas";s是有\0的。。因为在"adfas"的后面有一个\0

a[]={'a,''b','c'} 是没有\0的!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
白日日闪现
2010-12-15
知道答主
回答量:21
采纳率:0%
帮助的人:0
展开全部
没有'\0'
字符串数组后面由一个'\0',因为字符串本身由一个'\0',把它付给数组时必须把null付给数组
而字符数组是单个字符赋值,没人付给数组null
个人建议在学数组时,要结合着指针学,毕竟指针才是王道
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式