繁体   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