(面试题的四种答案)重写strcpy库函数..看不懂
下面是四种写法,四种写法的质量依次增强,能解释下这四种写法吗???
第一种:
void strcpy( char *strDest, char *strSrc )
{
while( (*strDest++ = * strSrc++) != ‘\0’ );
}
第二种:
void strcpy( char *strDest, const char *strSrc )
{
while( (*strDest++ = * strSrc++) != ‘\0’ );
}
第三种:
void strcpy(char *strDest, const char *strSrc)
{
assert( (strDest != NULL) && (strSrc != NULL) );
while( (*strDest++ = * strSrc++) != ‘\0’ );
}
第四种:
char * strcpy( char *strDest, const char *strSrc )
{
assert( (strDest != NULL) && (strSrc != NULL) );
char *address = strDest;
while( (*strDest++ = * strSrc++) != ‘\0’ );
return address;
}
这是C C++程序员面试的题目,作者对四种不同的答案进行了评价.......
第一种:
void strcpy( char *strDest, char *strSrc )
{
while( (*strDest++ = * strSrc++) != ‘\0’ );
}
第二种:
void strcpy( char *strDest, const char *strSrc )
{
while( (*strDest++ = * strSrc++) != ‘\0’ );
}
第三种:
void strcpy(char *strDest, const char *strSrc)
{
assert( (strDest != NULL) && (strSrc != NULL) );
while( (*strDest++ = * strSrc++) != ‘\0’ );
}
第四种:
char * strcpy( char *strDest, const char *strSrc )
{
assert( (strDest != NULL) && (strSrc != NULL) );
char *address = strDest;
while( (*strDest++ = * strSrc++) != ‘\0’ );
return address;
}
这是C C++程序员面试的题目,作者对四种不同的答案进行了评价.......
...全文


