襄阳王家台摩托车:关于strlen问题

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/12 01:08:04
33.若有以下定义和语句:
char *s1=〃12345〃,*s2=〃1234〃;
printf(〃%d\n〃,strlen(strcpy(s1,s2)));
则输出结果是()

(本题分值:1分)

【正确答案】
A
A.4
B.5
C.9
D.10

不会错吧...
A 啊...
那个复制函数定义为:char *strcpy(char *, char *),本来可定义为Void的,但是这样子定义就增加了灵活性,此题就体现了这点

这个程序有点问题,strcpy(s1,s2),能编译,不能执行的。如果就是想测试strcpy的返回值的话,
Each of these functions returns the destination string. No return value is reserved to indicate an error. (MSDN)

程序有错误,s1 s2各指向内存内的一段常量区,strcpy(s1,s2)意为把s1所指内容修改为s2指指的常量值,将引发常量重新赋值错误!