C primer ++ 學(xué)習(xí)筆記第8篇――C++函數(shù)
來源:程序員人生 發(fā)布時(shí)間:2014-12-13 09:26:12 閱讀次數(shù):2548次
//C++函數(shù)
//內(nèi)聯(lián)函數(shù)
//內(nèi)聯(lián)函數(shù)的作用: 程序無需跳到另外一個(gè)位置處履行代碼,再跳回來
//內(nèi)聯(lián)函數(shù)的運(yùn)行速度比常規(guī)函數(shù)稍快,但代價(jià)是需要占用更多內(nèi)存
//聲明內(nèi)聯(lián)函數(shù)的措施:在函數(shù)聲明 和 定義前加上關(guān)鍵字inline
inline double square(double x);//申明內(nèi)聯(lián)函數(shù)
inline double square(double x){
return x*x;
}//定義內(nèi)聯(lián)函數(shù)
//類似宏定義
#define SQUARE(X) X*X; //但是X不是參數(shù)傳遞
變量援用
int rats =10;
int &rods= rats; //&不是地址符,而是類型標(biāo)識(shí)符的1部份
//rats 和 rods的值和地址都1樣 ,當(dāng)rods++時(shí),rats的值就自動(dòng)加1
//他們是1個(gè)變量?jī)蓚€(gè)名稱
int *p =&rats; //指針申明
void swap(int &a,int &b){
int temp;
temp=a;
a=b;
b=temp;
} //援用傳遞可以改變a b的值,同時(shí)傳送回去。
void swap (int *p,int *q){
int temp;
temp=*p;
*p=*q;
*q=temp;
}//指針是改變他們的指向地址
//以上兩個(gè)函數(shù)都可以是現(xiàn)實(shí)值交換傳遞,但是
void swap(int a,int b){
int temp;
temp=a;
a=b;
b=temp;
} //沒法實(shí)現(xiàn)
//什么時(shí)候使用援用參數(shù)
//1.程序員能夠修改調(diào)用函數(shù)中的數(shù)據(jù)對(duì)象
//2.通過傳遞援用而不是全部數(shù)據(jù)對(duì)象,可以提高程序的運(yùn)行速度
//對(duì)使用傳遞的值而不做修改的函數(shù)
//1.如果數(shù)據(jù)對(duì)象很小,入內(nèi)置數(shù)據(jù)類型或小型結(jié)構(gòu),則按值傳遞
//2.如果數(shù)據(jù)對(duì)象是數(shù)組,則使用指針,并將指針聲明為指向const的指針
//3.如果數(shù)據(jù)對(duì)象是較大的結(jié)構(gòu),則使用const指針或const援用提高程序的效力。
//4.如果數(shù)據(jù)對(duì)象是類對(duì)象,則使用const援用
//修改調(diào)用函數(shù)中的數(shù)據(jù)的函數(shù)
//1.如果數(shù)據(jù)對(duì)象是內(nèi)置數(shù)據(jù)類型,則使用指針
//2.如果數(shù)據(jù)對(duì)象是數(shù)組,則只能使用指針
//3.如果數(shù)據(jù)對(duì)象是結(jié)構(gòu),則使用援用或指針
//4.如果數(shù)據(jù)對(duì)象是類對(duì)象,則使用援用
函數(shù)重載
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)