![](/img/trans.png)
[英]can someone explain me what is happening here for using malloc for pointer
[英]Can someone explain me the use of --destination here?
我正在完成有關C的CISCO課程,並且對以下功能有疑問。
有人可以解釋一下該函數的邏輯,尤其是--destination
嗎?
char *mystrcat(char *destination, char *source)
{
char *res;
for(res = destination; *destination++; ) ;
for(--destination; (*destination++ = *source++); ) ;
return res;
}
第一個循環正在尋找字符串終止符。 當找到它時, *destination
為false,則指針仍會通過*destination++
后遞增。
因此,下一個循環通過將指針遞減回到指向'\\0'
終止符開始,以開始合並。
在第二個循環中,將復制每個字符,直到使用(*destination++ = *source++);
找到字符串終止符為止(*destination++ = *source++);
評估為循環控制。 同樣,這將包括所需的字符串終止符被復制。
對於不應該編寫那么困難的東西來說,這是一個非常復雜的功能。
--destination是C的一個怪異功能。我假設您已經知道variable++
將變量加1。 同樣, variable--
將variable--
減1。 關鍵是,當++或-出現在變量名之后時,該操作將在整體執行該行之后進行;當它在變量之前執行時,C首先進行算術運算,然后計算整行。
例如:
int c = 5
print(c++) -> outputs '5'
print(c) -> outputs '6'
但
int d = 5
print(++d) -> outputs '6'
print(d) -> outputs '6'
這是因為在第二個示例中,在評估整行之前先評估增量。
希望能有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.