流问题
1)int *f(int a)
{ int *b=&a;
return b; }
void main()
{ int *c;
c=f(5);
cout < <*c<<endl ; }
2)int *f(int a)
{ int *b=&a;
return b; }
void main()
{ int *c;
c=f(5);
cout < <*c ; }
这两个的输出相同么,为什么
[解决办法]
函数f返回局部对象的指针,对该指针的访问结果将是不可预测的。因为局部对象在函数返回后将不再有效。
endl将刷新流缓冲区并回车换行。
[解决办法]
不相同的。
endl刷新流缓冲区
[解决办法]
同意一楼的。返回指向临时变量的指针不可预料
因为你的例子里的临时变量的作用域仅在函数内部