【发布时间】:2017-10-22 04:55:48
【问题描述】:
void my_strcat(char *dest, char *src)
{
(*dest)? my_strcat(++dest, src): (*dest++ = *src++)? my_strcat(dest, src): 0 ;
}
/* driver function to test above function */
int main()
{
char dest[100] = "geeksfor";
char *src = "geeks";
my_strcat(dest, src);
printf(" %s ", dest);
getchar();
}
我非常了解 C 主题指针和三元运算符,但对上面的代码感到困惑即这是试图在条件语句中检查什么以及进一步在真假依赖语句中发生的事情。
谁能详细解释一下这段代码到底在做什么?
【问题讨论】:
-
此函数依赖于
dest在调用之前完全归零 -
现在 geeksforgeeks 已经教你如何编写糟糕的 C 代码,找一个相反的教程。
标签: c arrays string function pointers