只是一个愚蠢但快速的问题:为什么一些使用 c 风格字符串的函数,例如:fgets、strcpy、strcat 等,当参数列表中有一个变量存储输出?即,为什么会这样:
char *strcat ( char *dest, const char *src );
不是
void strcat ( char *dest, const char *src );
甚至只是返回结果
char *strcat (const char *src );
我的意思是,如果您嵌套调用这些函数(这很危险),我可以看出这会有什么用,但我不明白为什么您需要同时拥有目标变量和返回结果...
我正在复习一些 C 编程的东西,不敢相信我忘记了多少!
最佳答案
为了方便使用,让这些函数可以在更大的表达式中使用或者可以嵌套。
类似于:
strcat(path, strcpy(file, "foo.txt"));
或
printf("[%s]\n", strcat(string1, string2));
不用说,这些用法可以而且应该避免。
关于c - 当存在目标变量时,在 strcat、strcopy 等(等)中返回 char* 的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10476501/