请问大神定义char s[5]={'1','2','3','4','5'};和char s[5]={“12345”};有错吗?为什么?谢谢! 5

请问大神定义chars[5]={'1','2','3','4','5'};和chars[5]={“12345”};有错吗?为什么?谢谢!... 请问大神定义char s[5]={'1','2','3','4','5'};和char s[5]={“12345”};有错吗?为什么?谢谢! 展开
 我来答
听不清啊
高粉答主

推荐于2017-11-14 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
char s[5]={'1','罩悉丛2','3','4'物樱,'5'};是可以的,但
char s[5]={“12345”};则错了。因为存储字符串"12345"需要6个字节陆御。(外加一个串结束符'\0')
百度网友ae85d8c
2013-09-06 · TA获得超过525个赞
知道小有建树答主
回答量:531
采纳率:50%
帮助的人:223万
展开全部
第一个定义了5个字符,定义本身没有错。第二掘历定义了一个字符串,长度越界。因为字符串必须包括一个\0的结束符,所以会占6个字节,用你的方法就越界了。

不过用第一种定义方法,你要用数组的方法去操作,不能用字符串的方法处理(因为它不是判樱搜字符串,少结束符),估计你说的乱码可能是这个问题。如果你的答案说是2个都有错,那就要看一下颂档后面是怎么用的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
煤矿知识铺
2013-09-06 · 超过19用户采纳过TA的回答
知道答主
回答量:84
采纳率:0%
帮助的人:37.8万
展开全部
第一个是定义了5个变量,1,2,3,4,5,而第二个定义是定义了一个变量12345,两者定义不一样
更多追问追答
追问
有错吗?不是要你解释区别
追答
第一个没有,第二个不能用双引号的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
菊香飘零
2013-09-06 · 超过12用户采纳过TA的回答
知道答主
回答量:31
采纳率:0%
帮助的人:24.1万
展开全部
第一个没蚂腊手错,第2个字符串后面会局此带结束符'\0',会有6个元素,会越界。第2中大括号闷嫌写不写是一样的
追问
可是第一个编译运行时后面会乱码的,而且书上说第一个也是长度不对,要定义成char s[6]={'1','2','3','4','5'};才对,是这样的吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式