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

相關(guān)文章
Windows 環(huán)境下使用 Qt 連接 MySQL
這篇文章主要介紹了Windows 環(huán)境下使用 Qt 連接 MySQL的相關(guān)資料,需要的朋友可以參考下2017-07-07數(shù)據(jù)結(jié)構(gòu) 紅黑樹的詳解
這篇文章主要介紹了數(shù)據(jù)結(jié)構(gòu) 紅黑樹的詳解的相關(guān)資料,數(shù)據(jù)結(jié)構(gòu)中的二叉樹查找,紅黑樹的講解,需要的朋友可以參考下2017-07-07C語言數(shù)據(jù)的存儲超詳細講解下篇浮點型在內(nèi)存中的存取
使用編程語言進行編程時,需要用到各種變量來存儲各種信息。變量保留的是它所存儲的值的內(nèi)存位置。這意味著,當您創(chuàng)建一個變量時,就會在內(nèi)存中保留一些空間。您可能需要存儲各種數(shù)據(jù)類型的信息,操作系統(tǒng)會根據(jù)變量的數(shù)據(jù)類型,來分配內(nèi)存和決定在保留內(nèi)存中存儲什么2022-04-04