數值傳遞,地址傳遞,引用。

 

 

 

 

c++兼容指針

#include"iostream"
using namespace std; 
//默認值傳遞,不會改變原始數據,不會交換  
void swap1(int a,int b)
{
    int t;
    t=a;
    a=b;
    b=t;
    
}
//通過指針直接對原始數據修改 
void swap2(int *p,int*q)
{
    int t;
    t=*p;
    *p=*q;
    *q=t; 
}
//通過引用直接對原始數據修改,相當於起了別名。a的別名x,b的別名y. 
void swap3(int& x,int& y)
{
    int t;
    t=x;
    x=y;
    y=t;
 } 

int main()
{   
    int a=3;
    int b=4;
    swap1(a,b);
    cout<<a<<" "<<b<<endl;;
    a=3,b=4;
    swap2(&a,&b);
    cout<<a<<" "<<b<<endl;;
    a=3,b=4;
    swap3(a,b);//相當於起了別名。a的別名x,b的別名y.直接對a,b原始數據操作
    cout<<a<<" "<<b<<endl;;
 } 

加了引用和不加引用,寫法的區別在函數聲明,但內部實現和不加引用相同。但是他卻可以對原始數據直接操作。

 

加入const 避免錯誤修改,參數值。

局部變量生存期有限。回收結果會錯。

#include"iostream"

using namespace std;

int &sum(int &num1,int& num2)

{

num1++;

num2++;

return num1+num2;//會報錯。

}

int main()

{

int num1=10,num2=15;

int &result=sum(num1,num2);

cout<<"result="<<result<<endl;//輸出result=16.  返回了最後一個參數的引用。

 

 }

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章