c++將引用或者是指針作為函數(shù)參數(shù)實現(xiàn)實參的運算
C++增加引用類型, 主要是把它作為函數(shù)參數(shù),以擴充函數(shù)傳遞數(shù)據(jù)的功能,較指針參數(shù)來得更加安全直觀。將引用作為參數(shù)傳遞的時候,實參初始化形參的時候不分配內(nèi)存空間,也不調(diào)用拷貝構(gòu)造函數(shù),因此更加能夠提高運算的性能。所以我們應該盡可能地使用引用,而非指針,但是應該要注意,因為局部變量具有自己短暫的生命周期,因此不能夠返回對一個局部變量的引用。
引用通常是在被定義的時候被初始化,但是當它作為參數(shù)的時候,則是在被調(diào)用的時候被初始化。這時候?qū)σ盟龅母淖兙褪菍Ρ灰玫淖兞克龅母淖儭?/P>
引用對變量的訪問是直接訪問,指針則是間接訪問,指針有自己獨立的地址和內(nèi)存空間,引用則是變量的別名沒有獨立的內(nèi)存空間。
傳遞變量的指針
//形參是指針變量,實參是一個變量的地址,調(diào)用函數(shù)時,形參(指針變量)指向?qū)崊⒆兞繂卧?#65377;
//函數(shù)通過使用指針變量作形參的時候,能夠?qū)崿F(xiàn)兩個指針變量所指向的值的互換。
#include <iostream>
using namespace std;
int main( )
{ void swap(int *,int *);
int i=3,j=5;
swap(&i,&j); //實參是變量的地址
cout<<i<<" "<<j<<endl; //i和j的值已互換
return 0;
}
void swap(int *p1,int *p2) //形參是指針變量
{ int temp;
temp=*p1; //以下3行用來實現(xiàn)i和j的值互換
*p1=*p2;
*p2=temp;
}
利用“引用形參”實現(xiàn)兩個變量的值互換
#include <iostream>
using namespace std;
int main( )
{ void swap(int &,int &);
int i=3,j=5;
swap(i,j);
cout<<"i="<<i<<" "<<"j="<<j<<endl;
return 0;
}
void swap(int &a,int &b) //形參是引用類型,在函數(shù)被調(diào)用的時候,引用被初始化
{ int temp;
temp=a;
a=b;
b=temp;
}
//輸出結(jié)果為
// i=5 j=3
上一篇:c++遍歷lua table示例
欄 目:C語言
本文標題:c++將引用或者是指針作為函數(shù)參數(shù)實現(xiàn)實參的運算
本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/3666.html
您可能感興趣的文章
- 04-02c語言沒有round函數(shù) round c語言
- 01-10深入理解C++中常見的關(guān)鍵字含義
- 01-10使用C++實現(xiàn)全排列算法的方法詳解
- 01-10c++中inline的用法分析
- 01-10用C++實現(xiàn)DBSCAN聚類算法
- 01-10全排列算法的非遞歸實現(xiàn)與遞歸實現(xiàn)的方法(C++)
- 01-10C++大數(shù)模板(推薦)
- 01-10淺談C/C++中的static與extern關(guān)鍵字的使用詳解
- 01-10深入C/C++浮點數(shù)在內(nèi)存中的存儲方式詳解
- 01-10深入理解C/C++混合編程


閱讀排行
本欄相關(guān)
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言的正則匹配函數(shù) c語言正則表達
- 04-02c語言用函數(shù)寫分段 用c語言表示分段
- 04-02c語言中對數(shù)函數(shù)的表達式 c語言中對
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段
- 04-02C語言中怎么打出三角函數(shù) c語言中怎
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求
隨機閱讀
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 01-10C#中split用法實例總結(jié)
- 01-10delphi制作wav文件的方法
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 04-02jquery與jsp,用jquery
- 01-11ajax實現(xiàn)頁面的局部加載
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改