【笔记】关于signed char一些理解

文章解释了面试中关于使用signedchar数组a计算strlen的示例,涉及ASCII码理解、字符长度计算以及signedchar数据类型的范围。重点在于找到数组中空字符0的位置,从而确定strlen的终止条件。
摘要由CSDN通过智能技术生成
    signed char a[1000];
    int i;
    for(i=0;i<1000;i++){
        a[i] = -1 - i;
    }
    printf("%d",strlen(a));

关于这一道面试题,首先必须要了解strlen的原理

strlen会范围字符的长度,直到遇到'/0’才会退出

也就是说

我们需要找到'/0'(空字符)的位置

可以看到根据ascii码,这个字符出现在0的位置,由于a的类型是char,也就是说当a[i] = 0时就会出现这个空字符。

根据输出可以分析,a的取值会从-1一直到-128,然后由于signed char的数据范围,会从-128 -> 127 再逐次减少到0,这个时候将会触发strlen的截取,所以总长度也就是128+127 = 255的结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值