88问答网
所有问题
什么是返回局部变量的引用
什么是返回局部变量的引用
举报该问题
其他回答
第1个回答 2019-02-02
int
&fun()
{
int
a;
//
do
something
about
a
return
a;
}
这个a就是局部变量的引用,但是一般不要这样做,因为局部变量一般会在函数执行完毕后销毁,你这样返回可能造成未定义的行为而出错
相似回答
什么是返回局部变量的引用
答:
对外部变量的说明 只是声明该变量是在外部定义过的一个全局变量 在这里
引用
而对全局变量的定义则是要对起分配存储单元的 一个全局变量只能定义一次 可是却可以多次引用 在同一源文件中,全局变量和局部变量同名时,在
局部变量的
作用域内,全局变量不起作用的。二。静态存储变量和动态存储变量 对于程序运...
为
什么
Java 能
返回局部变量的引用
答:
首先在 方法里,
局部变量
表里 会有一个位置A,标记 这个对象的地址(某种意义上就是指针,
引用
), 当运行代码的时候, new 操作,会去堆内存申请这个对象大小的内存,同时把申请到的地址,
返回
给操作数栈,然后把操作数栈的这个引用的值,赋给局部变量表的A,这样,你就在这个方法里 new了一个对象...
C++
返回局部变量的引用
答:
1,所谓不能
返回局部变量
,是指局部变量在栈空间中分配内存,函数返回时栈指针回退,当主调函数继续调用其它被调函数时,栈指针上移,上一次函数调用所分配的空间会被本次调用覆盖,如果此时再
引用
原来的局部变量就会出现不可预见的结果。所以局部变量在函数返回时并不是被销毁而是相当于可被再次利用。所以...
关于
局部变量引用
答:
返回局部变量的引用是一种很危险的做法,局部变量离开了函数生命周期就到了会被系统回收的
。也就是说第一个虽然能够拿到值,大概是整型数没做一些清除数据的处理,因为它是原始类型,但根本没必要这么做,直接返回一个int就行。 第二个是STL容器,这个容器生命周期到了,于是就销毁了。对于这种情况 一般...
关于 函数
返回
值储存和栈的问题
答:
1、这个地址值也是一个值,不过这里
返回的
是一个局部变量的地址,函数调用完毕之后伴随着栈指针的复位,这次调用使用的局部变量空间就有可能被下次函数调用时使用并更改其值,因此
返回局部变量的
地址通常都是个坏主意。2、函数在调用之后,划分出来的栈空间并不是只能通过push和pop来访问,而且对于局部变量...
c++中函数名字前有&是
什么
意思?
答:
&的意思
是返回
引用类型。格式:类型标识符 &函数名(形参列表及类型说明){ //函数体}。在内存中不产生被返回值的副本;(注意:正是因为这点原因,所以返回一个
局部变量的引用
是不可取的。因为随着该局部变量生存期的结束,相应的引用也会失效,产生runtime error。
C#为
什么
可以
返回局部变量的引用
答:
C++和C#用不同的眼光看待“类”,C#里全是
引用
,相当于C++里的指针。所以你那个代码改成C++就是 class Myclass { public:Myclass AMethod(){ Myclass myClass1 = new Myclass();return myClass1;} };关键点:注意都是new 如果你一定要走邪道,class Myclass { public:Myclass& AMethod(){ ...
C++中
引用
(&)的用法和拷贝/赋值函数的区别
答:
引用作为返回值,必须遵守以下规则:(1)不能
返回局部变量的引用
。这条可以参照Effective C++[1]的Item 31。主要原因是局部变量会在函数返回后被销毁,因此被返回的引用就成为了"无所指"的引用,程序会进入未知状态。(2)不能返回函数内部new分配的内存的引用。这条可以参照Effective C++[1]的Item 31。虽然不存在局部...
大家正在搜
为什么引用不能返回局部变量
JAVA怎么引用循环中的局部变量
如何用局部变量修改全局变量
未引用的局部变量
全局变量和局部变量
python局部变量和全局变量
如何引用局部变量
labview引用和局部变量
python引用局部变量