strcpy函数中return address ;想问一下这个address是栈指针??
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分
}
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分
}
return address ;想问一下这个address是栈指针?
如果不是那是什么样??
[解决办法]
你传进去的是什么指针返回的就是什么指针
[解决办法]
我的意思是
在函数内部定义的char *address
address 应该是一个栈的指针
如果返回一个栈的指针是不是有问题??
一直不明白这是怎么回事??
[解决办法]
address 是局部变量,它的空间在栈中,但return address;只是返回它的值而已,有什么问题
上面可以等同下面的代码
char *strcpy(char *strDest, const char *strSrc);
{
assert((strDest!=NULL) && (strSrc !=NULL));// 2分
char *address = strDest;// 2分
while( (*address ++ = * strSrc++) != ‘\0’ )// 2分
NULL ;
return strDest;// 2分
}