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

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

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

  • 写回答

3条回答 默认 最新

  • XIEYONGJIAN 2017-12-10 08:23
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥100 关于加载卡的问题有能知道这个要怎么处理吗?
  • ¥100 rtmpose姿态评估
  • ¥15 java 通过反射找路径下的类,打包后就找不到
  • ¥15 通联支付网上收银统一下单接口
  • ¥15 angular有偿编写,
  • ¥15 centos7系统下abinit安装时make出错
  • ¥15 hbuildex运行微信小程序报错
  • ¥15 关于#python#的问题:我知道这个问题对你们来说肯定so easy
  • ¥15 wpf datagrid如何实现多层表头
  • ¥15 为啥画版图在Run DRC会出现Connect Error?可我Calibre的hostname和计算机的hostname已经设置成一样的了。