文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>strcpy()返回值问题

strcpy()返回值问题

时间:2010-09-16  来源:louisin

char*strcpy(char*strDest,constchar*strSrc);在函数里面已经把值从strsrc拷贝到strdest里面了为什么还要返回strdest的指针呢?(我的面试题目,我没想到好的答案) 答:当strcpy失败的时候就能从返回值判断出来。 答:当strcpy失败的时候就能从返回值判断出来。





-------------------------------------


strcpy不管成功失败,都是返回指向目标的指针.


这样做,只是多提供了一个利用结果的手段.








printf("s\n",strcpy(dest,src)); 答:strcpy执行的是将strSrc拷贝到strDest里面


所以它返回就是strDest


答:方便使用 答:嗯嗯,2楼的纠正是对的。





林锐高质量C编程指南原文:





【建议6-2-1】有时候函数原本不需要返回值,但为了增加灵活性如支持链式表达,


可以附加返回值。


例如字符串拷贝函数strcpy的原型:


char*strcpy(char*strDest,constchar*strSrc);


strcpy函数将strSrc拷贝至输出参数strDest中,同时函数的返回值又是strDest。


这样做并非多此一举,可以获得如下灵活性:


charstr[20];


intlength=strlen(strcpy(str,“HelloWorld”/DownloadFiles\a\2005-03-14\));


答:增加灵活性如支持链式表达





可以把它的返回值直接作为其它函数的参数 答:为了方便嵌套使用. 答:明白了,多谢各位;) 答:学习! 答:"char*strcpy(char*strDest,constchar*strSrc);在函数里面已经把值从strsrc拷贝到strdest里面了为什么还要返回strdest的指针呢?(我的面试题目,我没想到好的答案)"





如果没有返回strDest指针,那么strDest可能出现你想不到的内容


因为char*strDest可以看作是个字符数组,如果你函数体内改变了数组内容,必须要返回上层函数才能得到处理的值,如果不返回那么你只能改变strDest[0]的值,即指针





相近的还有所以在子函数中给调用函数的指针分配的动态内存,必须用return返回该指针
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载