不使用变量,实现strlen函数

        不使用变量,实现strlen函数


      String 系列函数的实现是找工作时各大公司都爱考的题目,所以应该引起重视,“不使用中间变量”应该说是程序员不能显示的申请内存而已,即不能有局部变量或者动态内存申请。从函数原型看,返回值为size_t,那么在函数内部必定需要一个地方存储这个值,要么是常数要么是寄存器。长度不为1时不能一次就求出来,说明必须有递归调用,这样递归时函数会自动申请栈内存,这样就相当于程序员“不使用中间变量”了。中间返回的值通过寄存器自动保存,最后一次返回时拷贝到int中去。


size_t  my_strlen(const char *str)

{

        if  (NULL == str)

        {  

             return 0;

        }

        if (*str  == '\0') 

        {        

            return 0;

        }

       else

        {

           return 1+ my_strlen(++str);

        }

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值