C语言中,关于字符串长度与字符数组长度的问题。 20
Chara[]={'a','b','c'};中为什么说数组长度是3,但字符串长度不确定呢?字符数组与字符串之间究竟是什么关系呢?...
Char a[]={'a','b','c'};中为什么说数组长度是3,但字符串长度不确定呢?字符数组与字符串之间究竟是什么关系呢?
展开
7个回答
展开全部
C语言中没有字符串类型,C风格字符串用字符数组来表示,并以‘\0’结束,与字符串操作相关的函数都要求被操作的字符串满足这一条件,你给出的字符数组没有最后的空字符,也就是说编译器没有一个标志可以让它结束对这个字符串的长度的求解,所以不确定,数组长度为3是因为只有3个元素,如果你这样初始化:char a[] = "abc",编译器会自动给你加一个空字符,这样字符串长度就能确定为3了(确定字符串长度时编译器忽略最后的空字符)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Char a[]={'a','b','c'};按数组来说已经初始化了3个char类型,分配了3个char大小空间,而如果作为字符串,内存空间给字符指针a只指定了三个连续的char大小的空间,然后a[2]后面的内存块空间储存的到底是什么内容就是随机的了,而字符串以 '\0' 结尾,后面具体哪个是 '\0'完全不确定 ,所以字符串的长度无法确定
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C语言约定字符串以 '\0' 结尾,上述数组末尾没有 '\0' ,所以字符串的长度无法确定。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询