C:char 数组长度计算

字符素组长度是计算‘\0’,还是不计算'\0';

char chs[7] = {'a', 'c', '0', 'z', '3','d'}; -----长度为6

char chs[7] = {'a', 'c', '0', 'z', '3','d', '/0'}; ------长度为6

char chs[] = {'a', 'c', '0', 'z', '3','d', '/0' }; --------长度为6

字符数组的长度计算:必须以终止符’\0'作为边界。
1. C语言允许用字符串的方式对数组作初始化赋值

字符串总是以'/0'作为串的结束符;

因此当把一个字符串存入一个数组时,也把结束符'/0'存入数组,并以此作为该字符串是否结束的标志。

 char c[]="C program";

C   p r o g r a m /0

‘/0'是由C编译系统自动加上的,所以在用字符串赋初值时一般无须指定数组的长度, 而由系统自行处理。

 2. sizeof 和 strlen 的区别

strlen只能用char*做参数,且该char数组必须是以''/0''结尾的;

sizeof 即使在字符数组没有终止符'/0' 的时候,也能够计算出数组“长度”的原因,
但这里的“长度”实际上是:编译器分配给该数组变量的内存大小!

char chs[] = {'a', 'c', '\0', 'z', '3','d'}; // sizeof(chs) = 6; 而strlen(chs) = 2. 

参考文章:

1. https://blog.csdn.net/sjtu_huang/article/details/6533140

2. https://blog.csdn.net/m0_37592397/article/details/79701992

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值