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条)

报告相同问题?

悬赏问题

  • ¥15 vs2022无法联网
  • ¥15 TCP的客户端和服务器的互联
  • ¥15 VB.NET操作免驱摄像头
  • ¥15 笔记本上移动热点开关状态查询
  • ¥85 类鸟群Boids——仿真鸟群避障的相关问题
  • ¥15 CFEDEM自带算例错误,如何解决?
  • ¥15 有没有会使用flac3d软件的家人
  • ¥20 360摄像头无法解绑使用,请教解绑当前账号绑定问题,
  • ¥15 docker实践项目
  • ¥15 利用pthon计算薄膜结构的光导纳