我是靠谱客的博主 单纯蜻蜓,最近开发中收集的这篇文章主要介绍c++语言初学-return返回值注意:永远不要返回本地变量的指针和引用,会有错误;,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

return 在执行之前会创建一个临时的变量,来保存要传回的值,
   返回值:返回一个副本值,原本的已被消除
   返回指针:当返回的时候,原指针空间会被消除,如果没有被其它程序使用,则是能正确返回,如果释放后被其它程序使用,则会有可能修改掉此空间内的值,返回值会错误;
   

什么样的值除了函数仍然有效:

    1.全局变量;

    2.static变量;因为static相当于一个全局变量,不会被系统回收
   例:

#inlcude<iostream.h>
int& sum(int,int);
int main(void){
int x = 5,y = 10;
printf("%dn",sum(x,y));
return 0;
}
int& sum(int a,int b){
static int x;
x = a+b;
return x;
}


 

3.int* p = new int;
    返回p的时候,会产生一个p的副本,本身已经无效了,但是p的副本里

存有它new出来的地址,所以是有效的。(对于地址没有手动释放是有效的

) 
   例:

int* small(int x,int y){
int* p = new int;
return p;
}


 

4.如果传递的是一个引用,而且返回的也是引用的话,则可以正确的返回,因为它是在函数外定义的。

#include<iostream>
int& max(int&,int&);
int main(){
int x = 15,y = 10;
printf("%dn",max(x,y));
return 0;
}
int& max(int &a,int &b){
if(a>b)
return a;
else
return b;
}


 

5.如果传递的是变量,而且返回的也是变量,也可以正确返回。但是它创建一个副本返回时,如果不及时接收的话,会消失。

 

 

注意:永远不要返回本地变量的指针和引用,会有错误;

 

最后

以上就是单纯蜻蜓为你收集整理的c++语言初学-return返回值注意:永远不要返回本地变量的指针和引用,会有错误;的全部内容,希望文章能够帮你解决c++语言初学-return返回值注意:永远不要返回本地变量的指针和引用,会有错误;所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部