函数返回值,有点迷糊了
关于函数返回局部变量的问题,怎么越学越乱了感觉,谁理一下。
哪些局部变量的值可以返回,为什么?
int test()
{
int i = 3;
return i;
}
这个应该可以
---------------------------------
char* test()
{
char ch[5] = "1234";
return ch;
}
这个应该不行
--------------------------------
char *strdup(const char *str)
{
char *p;
if(p = malloc(strlen(str)+1))
strcpy(p, str);
return p;
}
这个可以
------------------------------------