码迷,mamicode.com
首页 > 其他好文 > 详细

函数返回局部变量的问题

时间:2015-12-15 22:32:47      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:

1.函数可以返回局部变量

当函数的局部变量作为函数的返回值时,其实是不知道是谁(是程序?)会自动生成一个变量的副本即拷贝作为函数的返回值,而原有的局部变量将被销毁。

注意函数不可以返回局部变量的地址或者某个指针,以为当函数运行完了(这里改咋说),系统会回收这块地址,因此这个地址里面 的东西也就没有意义了。

静态变量可以返回指针。

2.

int a[] = {1, 2};

return a;

此时也会返回指针a的一个拷贝,若a的地址值为0x002345FC,则0x2345FC是能够成功返回的。当return执行完成后,a就要被销毁,也就是0x002345FC所指向的内存被回收了。如果这时候在函数外面,比如int p=*a;去地址0x002345FC取值,那得到的结果肯定是不对的。

返回局部变量的引用也是同样的道理吼吼吼。

学习自:http://www.cnblogs.com/Jezze/archive/2012/02/06/2340686.html

 

函数返回局部变量的问题

标签:

原文地址:http://www.cnblogs.com/Cherrylalala/p/5049477.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!