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
时间: 2024-12-21 05:38:05