您好、欢迎来到现金彩票网!
当前位置:ds视讯 > 分支限界搜索 >

为什么C语言函数中可以返回局部变量而不能返回局部

发布时间:2019-07-30 02:48 来源:未知 编辑:admin

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部这个从函数调用是堆栈的变化说吧,函数调用的时候,系统会将函数的返回地址、参数压入系统栈中,然后跳转到函数的代码区开始执行你函数里面写的代码。

  这个时候,子函数才会去向系统申请堆空间存放你在这个函数中定义的变量,这些空间(变量)是有生命周期的,到这个子函数执行完毕,它的生命周期就结束了,申请的堆空间就会被释放,这个时候你指向它的指针当然是无效的;

  而可以返回局部变量的原因是,你子函数的返回值(子函数局部变量),会被当作父函数的局部变量处理,它在堆中可以存放至父函数执行完毕,所以它是有效的.

  是可以返回全局变量而不能返回局部变量。因为全局变量的声明定义非本函数所有,本函数在返回的时候回释放函数自身声明定义的局部变量,而不能释放外部的全局变量。

http://gamesbaby.net/fenzhixianjiesousuo/705.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有