w******a 发帖数: 27 | 1 比如strcpy的原型如下:
char *strcpy(char *dest,char *src);
这里可以用*dest返回值,也可以用函数的返回值把真正的返回值给return出来.
问题是:为什么用dest返回了,这里还用return返回. | X****r 发帖数: 3557 | 2 为了方便像我这种写one-liner的人:)
【在 w******a 的大作中提到】 : 比如strcpy的原型如下: : char *strcpy(char *dest,char *src); : 这里可以用*dest返回值,也可以用函数的返回值把真正的返回值给return出来. : 问题是:为什么用dest返回了,这里还用return返回.
| d****p 发帖数: 685 | 3 你这种人今后会被统统打到.
【在 X****r 的大作中提到】 : 为了方便像我这种写one-liner的人:)
| d****p 发帖数: 685 | 4 厚,还挺自豪的 :-P
【在 X****r 的大作中提到】 : 为了方便像我这种写one-liner的人:)
| h**k 发帖数: 3368 | 5 可能是为了用返回值继续操作
比如,copy到多个字符串可以写成
strcpy( str1, strcpy( str2, strcpy( str3, str0 ) ) );
【在 w******a 的大作中提到】 : 比如strcpy的原型如下: : char *strcpy(char *dest,char *src); : 这里可以用*dest返回值,也可以用函数的返回值把真正的返回值给return出来. : 问题是:为什么用dest返回了,这里还用return返回.
| r****t 发帖数: 10904 | 6 对你要按行数算工钱!
【在 X****r 的大作中提到】 : 为了方便像我这种写one-liner的人:)
| t****u 发帖数: 8614 | 7
正解!
不过这个题老了,后来流行的问法是,
class A
{
public:
A& operator=(const A& other);
}
为啥operator=()要返回A&。
原理是一样的。
【在 h**k 的大作中提到】 : 可能是为了用返回值继续操作 : 比如,copy到多个字符串可以写成 : strcpy( str1, strcpy( str2, strcpy( str3, str0 ) ) );
|
|