熱線電話:13121318867

登錄
首頁精彩閱讀函數傳遞參數的三種方式,以及它們的區別
函數傳遞參數的三種方式,以及它們的區別
2018-03-12
收藏

函數傳遞參數的三種方式,以及它們的區別

1.按值傳遞(pass by value)

使用這種方式,調用函數本省不對實參進行操作,也就是說,即使形參的值在函數中發生了變化,實參
的值也完全不會受到影響,仍為調用前的值。這相當于把實參賦值一份給形參,然后調用后內存回收。
[cpp] view plain copy

    <span style="font-size:18px;"><strong>#include<stdio.h>  
      
    int sum(int x,int y)  
    {  
        return x+y;  
    }  
    int main()  
    {  
        int result=sum(2,3);//通過直接對sum傳遞參數   
        printf("%d\n",result);  
        return 0;  
    }</strong></span> 
2.地址傳遞(pass by pointer)
地址傳遞與按值傳遞的不同在于,它把實參的存儲地址傳送給對應的形參,從而使得形參指針和實參指
針指向同一個地址。因此,被調用函數中對形參指針所指向的地址中內容的任何改變都會影響到實參。
[cpp] view plain copy

    #include<stdio.h>  
      
    int sum(int* x,int* y)  
    {  
        return *x+*y;  
    }  
    int main()  
    {  
        int a,b;  
        a=2;  b=3;  
        int result=sum(&a,&b);//通過地址對sum傳遞參數   
        printf("%d\n",result);  
        return 0;  
    } 
3.引用傳遞(pass by reference)
以引用為參數,則既可以使得對形參的任何操作都能改變相應的數據,又使得函數調用顯得方便、自然
。引用傳遞方式是在函數定義時在形參前面加上引用運算符“&”。引用相當于實參的別名,他和實參是同一個變量或數值,它的改變就是實參的改變。
[cpp] view plain copy

    <span style="font-size:18px;"><strong>#include<stdio.h>  
      
    int sum(int& x,int& y)<span style="color:#ff0000;">//定義引用類型</span>  
    {  
        return x+y;  
    }  
    int main()  
    {  
        int a,b;  
        a=2;  b=3;  
        int result=sum(a,b);//通過引用對sum傳遞參數   
        printf("%d\n",result);  
        return 0;  
    }</strong></span>

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢