![](/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.