关于strcpy(15分)

  • 主题发起人 主题发起人 micksxb
  • 开始时间 开始时间
M

micksxb

Unregistered / Unconfirmed
GUEST, unregistred user!
我看到一个C++/C试题的答案与评分标准里的strcpy()中的答案是
char *strcpy(char *strDest, const char *strSrc);
{
assert((strDest!=NULL) &&
(strSrc !=NULL));
// 2分
char *address = strDest;
// 2分
while( (*strDest++ = * strSrc++) != ‘/0’ ) // 2分
NULL
return address // 2分
}
可是我不懂其中的assert是什么意思,还有为什么要有一行单独的NULL;呢?
请大侠指教!
 
第一行是检查strDest,strSrc
第二行令address指向strDest
第三行实现拷贝,NULL没有实际意义,不要NULL其实可以写成while( (*strDest++ = * strSrc++) != ‘/0’ );
最后一行函数返回*strDest;
 
多谢Python_2000,你说得很清楚,可是我在VC下编译时,编译器却不认识assert啊?麻烦你再解释一下好吗?
 
assert表示断言,就是说assert括号内的条件一定要为真,如果后面条件为假,程序则会退出。用assert则要包含#include<assert.h>头文件。
 
多人接受答案了。
 
后退
顶部