C語言中關於strcry 引發的思考

2022-07-27 08:21:08 字數 1169 閱讀 1627

無意中看到了關於面試題的部落格   部落格的出處

為了防止部落格的失效我將其**引入:

void strcpy( char *strdest, char *strsrc )

void strcpy( char *strdest,const

char *strsrc )

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

void strcpy(char *strdest, const

char *strsrc)

char * strcpy( char *strdest, const

char *strsrc )

看到這道題後,分數的逐步提高,嗯,的確是。 那看了據該分析一下為什麼分數有提高,其實原作者已經寫出來,我自己做點自己的理解描述:

1. 使用斷言方式檢驗引數,如果傳入的引數中 存在null,ok。。。。。gameover。。。。。

2. 使用const來約束strsrc,符合程式健壯性原則。凡是是修改試圖改動strsrc的內容,編譯器將產生錯誤。

可以參見 樓主其他博文中關於指標常量的講解。

3. 為了鏈式程式設計 。

4. 通過乙個例子 對這個問題進行一下解析

5  我算是笨死了不知道站在巨人的肩膀上  巨人的肩膀上(ps:鏈結)

1. 我們首先確定問題優先順序 ,關於c語言符號優先順序 已經有帖子描述 。

2. ok,我們舉乙個上學時候常見的例子。問題:i++和++i ;

#define product(x) (x*x)

int main(void

)

答案  j = 9, k = 49; 關於這個有詳細的描述  

下邊 繼續我們的話題:

while( (*strdest++ = * strsrc++) != '\0』 );  我們現在將它進行逐步分級

1) strdest = *strsrc;

2) *strsrc != 0;

3) *strdest ++;

4)*strsrc ++;

關於C語言中的巨集

define pi 3.14 define zhouchang r 2 pi r 定義帶引數的巨集 undef pi 結束巨集 使用 ifdef ifndef else endif執行條件編譯 ifdefine 巨集名稱 語句 else 語句 endif define age 39 int main...

關於C語言中的指標

1 對於已定義的某個變數的讀取 通過該變數來訪問它的值 通過該變數的儲存位置讀取數值 指標 作業系統會將所有的記憶體單元進行編號。關於32位作業系統與64位作業系統支援的最大記憶體。計算機底層使用二進位制進行管理,所以32位作業系統支援2的32次方個編號,即4g的記憶體位址。int a 1 int ...

關於C語言中的巨集

巨集 macro,是一種批量處理的稱謂。巨集是一種規則或模式,或稱語法替換。在預編譯時進行,稱作巨集展開。c語言中的巨集定義 1 define是預處理器處理的單元實體之一 2 define定義的巨集可以出現在程式的任意位置 3 define定義之後的 都可以使用這個巨集。定義巨集常量 1 可以直接使...