不使用變量,實現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);

        }

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章