下面的两个函数之间是否有任何区别不是在两种情况下都返回局部变量的地址,而是使用 f1() fn 返回正确的值 4 而不是 f2()。同样在第三种情况下,我是否正确地认为字符串常量没有存储在堆栈中,所以当我们返回指针时它会正常工作。那么字符串常量存储在哪里?
int* f1()
{
int* a=(int*)4;
return a;
}
int* f2()
{
int a=4;
return &a;
}
char* f3()
{
char* p="abcd";
return p;
}