为什么说返回局部变量地址的行为被提示是不可预知的
书中提示:返回局部变量地址的行为被提示是不可预知的,为什么。
以下程序为例。
#include <iostream.h>
int f()
{
int a = 3;
return a;
}
int* g()
{
int a = 3;
return &a;
}
int& h()
{
int a = 3;
return a;
}
void main()
{
cout<<g()<<endl;
cout<<*g()<<endl;
cout<<h()<<endl;
}
为什么有如下警告,而结果又是没有问题的?即都返回3
returning address of local variable or temporary