weixin_41257900
weixin_41257900
2017-12-10 07:51
采纳率: 75%
浏览 3.3k
已采纳

字符串数组长度,字符数组长度问题

char a[] = {'a','b','c'};
char b[] = "abc";
请问下数组a和数组b的长度我理解的是都为3,但是答案是b的长度大于a的长度,
不太明白后面那个是不是要算上\0呢,这个长度是要用strlen计算么

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • XIEYONGJIAN
    XIEYONGJIAN 2017-12-10 08:23
    已采纳

    任何字符串他都会在字符结尾自动添加上'\0'。因为计算机判定字符串的长度就是看这个'\0'的字符串,所以strlen也是这个原理。
    前一楼的兄弟已经说的很明白了,但是要注意一点,因为你现在定义的是char b[],这种方式,这是计算机根据字符串自动计算长度,所以他会分配四个字节,
    如果是自己定义数组的长度需要把'\0'加上,不然会有截断,所以应该定义:char b[4] = "abc"

    点赞 评论
  • liuziying35
    zy35 2017-12-12 07:58

    对于字符而言,就是'a','b'等,一个字符的长度为1,
    对于字符串而言,就是'abc'而言,因为所有的字符串在结尾都会自动加上‘\0’,所以数组b的长度应该是3+1=4.

    点赞 1 评论
  • qq_36890813
    软工16009彭杰 2017-12-10 08:59

    字符串实际长度为4,有\0作为结尾标识,strlen的的值为3,不包括\0

    点赞 评论

相关推荐