当前位置:编程学习 > C/C++ >>

c++语言初学-return返回值

return 在执行之前会创建一个临时的变量,来保存要传回的值,
   返回值:返回一个副本值,原本的已被消除
   返回指针:当返回的时候,原指针空间会被消除,如果没有被其它程序使用,则是能正确返回,如果释放后被其它程序使用,则会有可能修改掉此空间内的值,返回值会错误;
  
什么样的值除了函数仍然有效:
    1.全局变量;
    2.static变量;因为static相当于一个全局变量,不会被系统回收
   例:
[cpp]
#inlcude<iostream.h> 
      int& sum(int,int); 
      int main(void){ 
        int x = 5,y = 10; 
    printf("%d\n",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的副本里www.zzzyk.com
存有它new出来的地址,所以是有效的。(对于地址没有手动释放是有效的
) 
   例:
[cpp]
int* small(int x,int y){ 
             int* p = new int; 
             return p; 
    }   

 
4.如果传递的是一个引用,而且返回的也是引用的话,则可以正确的返回,因为它是在函数外定义的。
[cpp]
#include<iostream> 
int& max(int&,int&); 
int main(){ 
    int x = 15,y = 10; 
    printf("%d\n",max(x,y)); 
    return 0; 

int& max(int &a,int &b){ 
    if(a>b) 
       return a; 
       else 
       return b; 

 
5.如果传递的是变量,而且返回的也是变量,也可以正确返回。但是它创建一个副本返回时,如果不及时接收的话,会消失。
 
 
注意:永远不要返回本地变量的指针和引用,会有错误; 


摘自 like7xiaoben 
补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,