首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

strcpy为啥要返回一个指针呢

2012-09-14 
strcpy为什么要返回一个指针呢?面试被这么问回答不出来好郁闷。。。说实话我也想不通,如下:  char *strcpy(ch

strcpy为什么要返回一个指针呢?
面试被这么问回答不出来好郁闷。。。

说实话我也想不通,如下:

  char *strcpy(char *strDest, const char *strSrc);
  {
  assert((strDest!=NULL) && (strSrc !=NULL)); 
  char *address = strDest; 
  while( (*strDest++ = * strSrc++) != ‘\0’ ) 
  NULL ; 
  return address ; 
  }

有必要返回address么?这么考虑的原因是什么?

[解决办法]

C/C++ code
char *strcpy(char *strDest, const char *strSrc);   {   assert((strDest!=NULL) && (strSrc !=NULL));   char *address = strDest;   while( (*strDest++ = * strSrc++) != ‘\0’ )   NULL ;   return address ;   } 返回指针嘛比如:char* p,*q;strcpy(p,q);好好看看函数里面,把p的指针指向改了,所以,假如:cout<<*p;这会出错,或者不是我们预期的效果:而:p = strcpy(p,q);cout<<*p;这就对了!
[解决办法]
有时候函数原本不需要返回值,但为了增加灵活性如支持链式表达,可以附加返回值。 

我在CSDN里找到的,我也学了一点儿东西.你感谢maquanwei(深爱编程)吧.




[解决办法]
对,确实很灵活,unix中的c函数很多也是不用返回的,可大多都有返回值,多是指引。
[解决办法]
为实现链式操作:
strlen(strcpy());
strcat(strcpy());
等等

热点排行