簡體   English   中英

有人可以在這里向我解釋--destination的用法嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM