函數(shù)聲明
- 函數(shù)定義:函數(shù)如何實(shí)現(xiàn)
- 靜態(tài)變量:靜態(tài)變量只在執(zhí)行線程第一次到達(dá)他的時(shí)候初始化咕村。例如:
#include <iostream>
using namespace std;
void f(int a);
int main(){
f(3);
//f(4);
}
void f(int a){
//static int n = 0;
while(a --){
static int n = 0;
int x = 0;
cout << "n == " << n ++ << " x == " << x ++ << endl;
}
}
輸出為:
n == 0 x == 0
n == 1 x == 0
n == 2 x == 0
參數(shù)傳遞
- 值傳遞:函數(shù)中調(diào)用的是變量的一個(gè)副本,函數(shù)中變量的改變不會(huì)改變函數(shù)外變量的值
- 址傳遞:傳遞的是指針,函數(shù)外變量的值也會(huì)改變
- 引用類型:傳遞的是引用然眼,函數(shù)外變量的值也會(huì)改變
- 修改引用參數(shù)的函數(shù)會(huì)使程序更加難讀甘邀,因此最好避免寫這種函數(shù)
- 但是,通過(guò)引用傳遞大對(duì)象昔字,比值傳遞的效率更高一些爆袍。因?yàn)橹祩鬟f會(huì)新建一個(gè)該參數(shù)的副本首繁。
- 在這種情況下,可以將該參數(shù)聲明為const陨囊,以說(shuō)明使用引用類型的參數(shù)僅僅是為了效率的原因弦疮,而不是想讓調(diào)用函數(shù)能夠修改參數(shù)的額值。
- 數(shù)組參數(shù)
- 傳遞數(shù)組參數(shù)時(shí)無(wú)法知道數(shù)組的長(zhǎng)度蜘醋,一種方法是在函數(shù)的參數(shù)里增加一個(gè)說(shuō)明數(shù)組的長(zhǎng)度胁塞,另一種方式是使用vector
返回值
- 每當(dāng)一個(gè)函數(shù)被調(diào)用,就會(huì)建立起他的參數(shù)和局部變量的一套新副本压语;在函數(shù)返回后啸罢,這些存儲(chǔ)空間又會(huì)被另作他用。所以胎食,絕不能返回指向局部變量的指針或者局部變量的引用扰才。