面試中strcpy原始碼的判分標準

2021-06-23 07:02:57 字數 804 閱讀 9527

如果編寫乙個標準strcpy函式的總分值為10,下面給出幾個不同得分的答案: 2分

void strcpy( char *strdest, char *strsrc )

4分 void strcpy( char *strdest, const char *strsrc )

//將源字串加const,表明其為輸入引數,加2分

7分

void strcpy(char *strdest, const char *strsrc)

10分

char * strcpy( char *strdest, const char *strsrc )

//將源字串加const,表明其為輸入引數,加2分

從2分到10分的幾個答案我們可以清楚的看到,需要多麼紮實的基本功才能寫乙個完美的strcpy。

#include

char *strcpy(char *dst, const char *src)

return tmp;}

需要注意幾個方面的問題:

1、注意程式設計風格。比如,使用dst、src這樣增強可讀性的名字。

2、使用斷言assert來檢驗輸入引數的有效性。

assert巨集的原型定義在中,其作用是如果它的條件返回false,則終止程式執行。可以在任何時候啟用和禁用斷言驗證,因此可以在測試時啟用斷言,而在部署時禁用斷言。

3、使用const來約束src,表明src對應的內容不能被修改。

4、返回dst,以便實現鏈式表示式這樣的機制。

strcpy的實現原始碼

實現1 char strcpy char dest,const char source 實現2 char strcpy char dest,const char source dest i 0 return ret 解析 為什麼要返回char 型別 為了實現鏈式連線。返回內容為指向目標記憶體的位址指...

關於strcpy原始碼分析

注意到乙個帖子 strdest strsrc 0 哪兒前輩可以解釋下裡面具體執行的步驟呢?對於這樣的表示式,我們通常會有這樣三種看法 1.這種寫法不但沒有錯誤 當然也沒有bug 而且寫法緊湊。2.這種寫法雖然沒有錯誤,但是不夠直觀,理解起來有點麻煩,可能還會導致理解錯誤。3.這種寫法中存在未定義的地...

GLide 原始碼 面試

glide.with this load url into imageview with load url 1.glide是支援url字串 本地路徑等等載入形式的 2.它提供了asbitmap 和asgif 這兩個方法 它們分別又建立了乙個bitmaptyperequest和giftypereque...