C语言中,关于字符串长度与字符数组长度的问题。 20

Chara[]={'a','b','c'};中为什么说数组长度是3,但字符串长度不确定呢?字符数组与字符串之间究竟是什么关系呢?... Char a[]={'a','b','c'};中为什么说数组长度是3,但字符串长度不确定呢?字符数组与字符串之间究竟是什么关系呢? 展开
 我来答
求知一人
2013-11-29 · 超过47用户采纳过TA的回答
知道小有建树答主
回答量:106
采纳率:0%
帮助的人:70.6万
展开全部
1楼正解,你在初始化时给数组a赋了3个值,所以其实a的类型应该是 char a[3],数组长度为3,。
字符串就不一样了,他必须以‘\0’结尾,你的 ‘a’ ‘b’ ‘c’存储在一个连续的地址上,字符串的长度是从‘a’的地址开始一直计数,当读到‘\0’时结束,虽然你没有用到‘c’后面的地址,但它会一直读下去并计数,如果‘c’后面的地址存的是‘\0’那长度就是3了,如果不是就一直往下读,所以说字符串的长度不确定
ZR稻草人
2013-11-29
知道答主
回答量:28
采纳率:0%
帮助的人:10.5万
展开全部
C语言中没有字符串类型,C风格字符串用字符数组来表示,并以‘\0’结束,与字符串操作相关的函数都要求被操作的字符串满足这一条件,你给出的字符数组没有最后的空字符,也就是说编译器没有一个标志可以让它结束对这个字符串的长度的求解,所以不确定,数组长度为3是因为只有3个元素,如果你这样初始化:char a[] = "abc",编译器会自动给你加一个空字符,这样字符串长度就能确定为3了(确定字符串长度时编译器忽略最后的空字符)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
看灰过来了
推荐于2017-10-14 · TA获得超过879个赞
知道小有建树答主
回答量:508
采纳率:83%
帮助的人:291万
展开全部
数组长度指的是数组的元素个数,字符串长度是以‘\0’为标志来确定的,举个例子:
char a[20]="abc";
数组长度是20,而字符串长度是3,隐含的'\0'不算在字符串长度中。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
强兵当战马强F9e4
2013-11-29
知道答主
回答量:29
采纳率:100%
帮助的人:4.1万
展开全部
Char a[]={'a','b','c'};按数组来说已经初始化了3个char类型,分配了3个char大小空间,而如果作为字符串,内存空间给字符指针a只指定了三个连续的char大小的空间,然后a[2]后面的内存块空间储存的到底是什么内容就是随机的了,而字符串以 '\0' 结尾,后面具体哪个是 '\0'完全不确定 ,所以字符串的长度无法确定
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a5eb3e1
2013-11-29 · TA获得超过4447个赞
知道大有可为答主
回答量:3486
采纳率:60%
帮助的人:2619万
展开全部
C语言约定字符串以 '\0' 结尾,上述数组末尾没有 '\0' ,所以字符串的长度无法确定。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式