程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> c++語言初學-return返回值

c++語言初學-return返回值

編輯:C++入門知識

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.2cto.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 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved