ca55a c 函式引數傳遞

2021-10-02 14:38:07 字數 1829 閱讀 2567

/*ca55a_c++_函式引數傳遞_非引用形參

txwtech

非引用形參,傳引數,就是copy

1.普通形參

* 非const形參

* const形參,不能修改

2.指標形參

* 非const指標形參

* const指標形參

//addone2(a2);//error c2664: 「void addone2(int *)」: 無法將引數 1 從「const int」轉換為「int *」

不能把const傳給非const

非const實參可以傳給const形參

const可以傳給const

3.複製實參的侷限性

非引用形參,傳引數,就是copy,如果乙個陣列比較大,比如int a[1000000];

有些情況下,類裡面不能複製實參

class dog

void doa(dog dog)

引用形參。。。

/*ca55a_c++_函式引數傳遞_非引用形參

txwtech

非引用形參,傳引數,就是copy

1.普通形參

* 非const形參

* const形參,不能修改

2.指標形參

* 非const指標形參

* const指標形參

//addone2(a2);//error c2664: 「void addone2(int *)」: 無法將引數 1 從「const int」轉換為「int *」

不能把const傳給非const

非const實參可以傳給const形參

const可以傳給const

3.複製實參的侷限性

非引用形參,傳引數,就是copy,如果乙個陣列比較大,比如int a[1000000];

有些情況下,類裡面不能複製實參

class dog

void doa(dog dog)

引用形參。。。

*/#include using namespace std;

void addone(int x)//非引用形參,傳引數,就是copy

//傳指標的copy,位址的拷貝

void addtwo(int *px)//指標形參,(指標是非引用)

//引用形參,傳遞c本身,

void addthree(int& x)//引用形參,傳遞c本身,

int add(int x, int y)

int add2(const int x, const int y)//const形參

//非引用const 形參,傳引數,就是copy

void addone1(const int x)//非引用const 形參,傳引數,就是copy

//demo3

void addone2( int *ip)//

//const指標,值不能修改

void addtwo2(const int *px)//const指標,值不能修改

int add3(const int *px, const int *py)

//函式過載,函式名一樣,引數不一樣

void fcn(int i)//函式過載,函式名一樣,引數不一樣

void fcn(double i)//函式過載

int getbigger(int x, const int *y)

//void swap(int x, int y)//在main函式裡面,兩個值實際沒有交換

//void swap(int *x, int *y)//在main函式裡面,兩個值實現了交換

int main()

ca58a c 函式引數傳遞

ca58a c 函式引數傳遞 陣列形參 1.陣列不能複製 2.陣列的名稱是指向陣列的第乙個元素的指標 三種傳遞陣列的寫法,資料不修改,建議都加上const void printvalue 4 int x 10 寫上 x 小括號,表示x是引用,它引用的陣列 不寫,int x 10 的x是陣列,陣列裡面...

函式引數傳遞

引數傳遞的本質 實參給形參賦值的過程 1.1 位置引數之值傳遞 值傳遞指傳遞不可變型別,一般指string tuple和number型別 def func1 a print a a 10 print a temp 20 將temp作為實參傳遞給func1函式,將賦值給形參a 相當於 a temp f...

函式引數傳遞

位置引數 關鍵字引數 可變數量引數 def add x,y return x y add 3,4 7 def add x,y return x y add y 4,x 3 7 def test fun a,b 6,c,d print a a,b b,c c,d d test fun 1 a 1 b ...