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


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹(shù)的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問(wèn)題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 04-02c語(yǔ)言函數(shù)調(diào)用后清空內(nèi)存 c語(yǔ)言調(diào)用
- 04-02func函數(shù)+在C語(yǔ)言 func函數(shù)在c語(yǔ)言中
- 04-02c語(yǔ)言的正則匹配函數(shù) c語(yǔ)言正則表達(dá)
- 04-02c語(yǔ)言用函數(shù)寫(xiě)分段 用c語(yǔ)言表示分段
- 04-02c語(yǔ)言中對(duì)數(shù)函數(shù)的表達(dá)式 c語(yǔ)言中對(duì)
- 04-02c語(yǔ)言編寫(xiě)函數(shù)冒泡排序 c語(yǔ)言冒泡排
- 04-02c語(yǔ)言沒(méi)有round函數(shù) round c語(yǔ)言
- 04-02c語(yǔ)言分段函數(shù)怎么求 用c語(yǔ)言求分段
- 04-02C語(yǔ)言中怎么打出三角函數(shù) c語(yǔ)言中怎
- 04-02c語(yǔ)言調(diào)用函數(shù)求fibo C語(yǔ)言調(diào)用函數(shù)求
隨機(jī)閱讀
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子
- 01-10C#中split用法實(shí)例總結(jié)
- 01-10delphi制作wav文件的方法
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-11Mac OSX 打開(kāi)原生自帶讀寫(xiě)NTFS功能(圖文
- 04-02jquery與jsp,用jquery
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 01-10SublimeText編譯C開(kāi)發(fā)環(huán)境設(shè)置
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改