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

关于strcpy这个库函数写法的有关问题

2012-03-09 
关于strcpy这个库函数写法的问题函数原型声明char*strcpy(char*strDest,constchar*strSrc)至于为什么声明

关于strcpy这个库函数写法的问题
函数原型声明
char   *strcpy(char   *strDest,const   char   *strSrc)
至于为什么声明成指针函数,解释是这样的
为了实现链式操作,将目的地址返回,
这个解释我还是不明白,
请大家指点指点

[解决办法]
将源字符串地首地址,目标字符串的首地址传进函数,
然后,。。将源字符串copy到目标字符串,返回目的地址

[解决办法]
例如:strcpy(Dest, strcpy(strDest, strSource)); //链式操作

如果不是 char *返回目的地址,
就无法如此操作,
必须分割为多个语句 ~
[解决办法]
至于为什么声明成指针函数,解释是这样的
//是返回一个char*指针好不好,哪有指针函数!!! 不会是 "* "函数名靠的近一点
你就当成函数指针了吧 -_-!

Return Value
Each of these functions returns the destination string. No return value is reserved to indicate an error.
//msdn写的很明白返回值的意义是正常拷贝返回目标串地址

找个是备注使用strcpy的
Remarks
The strcpy function copies strSource, including the terminating null character, to the location specified by strDestination. No overflow checking is performed when strings are copied or appended. The behavior of strcpy is undefined if the source and destination strings overlap.


[解决办法]
再问:
int *foo(const int &)这种声明不是叫做指针函数吗,本质是一个函数,返回类型是一个指针
不是这样吗,
请指教
-----------
不能这样理解阿,这是一个函数,返回的是int型指针

int foo(const int a ){}

int (*p)( const int );
p为foo函数的指针,*p必须带括号,因为不带的话,*会默认与int关联,认为是返回类型
[解决办法]
char *strcpy(char *strDest,const char *strSrc)
返回一个char*,正是为了链式的操作,
char a[]= "hello ";
char b[]=world ";
char c[6];
strcpy(c,strcpy(a,b));//这样就把b拷到a中,再把它们的返回值,也就是a再考到c中,如果
//strcpy的返回值不是char*,就无法满足这种作法了


int *foo(const int &)这种声明不是叫做指针函数吗,本质是一个函数,返回类型是一个指针
不是这样吗,
请指教

这应该叫做返回类型为指针的函数. 它的确是一个函数,返回类型是指针,你说的都对.
但最好不要说什么指针函数,容易和函数指针弄混,文字游戏一样
[解决办法]
char *strcpy(char *strDest,const char *strSrc)
它返回的了一个字符串指针,然后你可以int lenght =strlen(strcpy(strDest, "hello "));
这样很方便的得到它的长度,不用去再搞个变量来存储,这是是它的好处
[解决办法]
有好处,例如strlen(strcpy(a,b)).

热点排行