char *strcpy(char *strdest,const char *strsrc)
{
char *temp;
temp=strdest;
strsrc=temp;
return temp;
}
void main()
{
char a[]="123",b[10];
strcpy(a,b);
cout<<"a="<<a<<endl<<"b="<<b<<endl;
}
ls:
char *strcpy(char *strdest,const char *strsrc)
{
char *temp;
temp=strdest;
strsrc=temp;
return temp;
}
这里没有不确定性,返回的是变量的值
这就好像
int s()
{
int a=0;
return a;
}
一样 ,只会返回0.
返回的值是一个地址,也是字符串数组的首地址,而内存也不是在函数中分配的,所以不是偶然正确.
ls:
char *strcpy(char *strdest,const char *strsrc)
{
char *temp;
temp=strdest;
strsrc=temp;
return temp;
}
这里没有不确定性,返回的是变量的值
这就好像
int s()
{
int a=0;
return a;
}
一样 ,只会返回0.
返回的值是一个地址,也是字符串数组的首地址,而内存也不是在函数中分配的,所以不是偶然正确.
真的是这样的吗?
它是没有分配内存,但这个指针本身是要分配内存的啊,要不怎么说一个指针占四个字节呢
而且它是局部变量,它所指的不用分配了,但它自己还是需要分配的,对不对。
是的,指针也是变量,所以我拿int s()作比喻
请问,int s(){int a=0;return a;}会出现问题吗?