ca58a c 函式引數傳遞

2021-10-02 14:58:43 字數 3211 閱讀 3510

/*ca58a_c++_函式引數傳遞_陣列形參

1.陣列不能複製

2.陣列的名稱是指向陣列的第乙個元素的指標

三種傳遞陣列的寫法,資料不修改,建議都加上const

void printvalue_4(int (&x)[10])//寫上(&x)小括號,表示x是引用,它引用的陣列;不寫,int & x[10]的x是陣列,陣列裡面的是引用。

形參的長度會引起誤解

陣列實參-陣列會悄悄地轉換為指標

通過引用傳遞陣列

多維陣列的傳遞

傳遞給函式的陣列的處理---三種方法

txwtech

void printvalues_5(int(x)[10], int rowsize)//錯誤,少些了*

void printvalues_5(int(*x)[10], int rowsize)//正確

1>d:\users\txwtech\projects\ca58a\ca58a\ca58a.cpp(56): error c2109: 下標要求陣列或指標型別

1>d:\users\txwtech\projects\ca58a\ca58a\ca58a.cpp(82): error c2664: 「void printvalues_5(int ,int)」: 無法將引數 1 從「int [3][10]」轉換為「int 」

1>d:\users\txwtech\projects\ca58a\ca58a\ca58a.cpp(82): note: 與指向的型別無關;強制轉換要求 reinterpret_cast、c 樣式強制轉換或函式樣式強制轉換

//傳遞兩個指標

void printvalues_6(const int *beg, const int *end)//*beg指向陣列的第乙個元素,*end指向陣列的最後乙個元素的下乙個

*/

/*ca58a_c++_函式引數傳遞_陣列形參

1.陣列不能複製

2.陣列的名稱是指向陣列的第乙個元素的指標

三種傳遞陣列的寫法,資料不修改,建議都加上const

void printvalue_4(int (&x)[10])//寫上(&x)小括號,表示x是引用,它引用的陣列;不寫,int & x[10]的x是陣列,陣列裡面的是引用。

形參的長度會引起誤解

陣列實參-陣列會悄悄地轉換為指標

通過引用傳遞陣列

多維陣列的傳遞

傳遞給函式的陣列的處理---三種方法

txwtech

void printvalues_5(int(x)[10], int rowsize)//錯誤,少些了*

void printvalues_5(int(*x)[10], int rowsize)//正確

1>d:\users\txwtech\projects\ca58a\ca58a\ca58a.cpp(56): error c2109: 下標要求陣列或指標型別

1>d:\users\txwtech\projects\ca58a\ca58a\ca58a.cpp(82): error c2664: 「void printvalues_5(int ,int)」: 無法將引數 1 從「int [3][10]」轉換為「int 」

1>d:\users\txwtech\projects\ca58a\ca58a\ca58a.cpp(82): note: 與指向的型別無關;強制轉換要求 reinterpret_cast、c 樣式強制轉換或函式樣式強制轉換

//傳遞兩個指標

void printvalues_6(const int *beg, const int *end)//*beg指向陣列的第乙個元素,*end指向陣列的最後乙個元素的下乙個

*/#include using namespace std;

//三種傳遞陣列的寫法,資料不修改,建議都加上const

void printvalues(int *x,std::size_t size)//1,x指標,指向陣列的第乙個元素,建議使用這種

//void printvalues_2(int x)//寫法錯誤

void printvalues_2(int x, std::size_t size)//2宣告型別為陣列,指向陣列的第乙個元素

void printvalues_3(int x[10], std::size_t size)//3--10沒什麼用,可寫可不寫,c++會把它忽略掉

//傳引用的方式int (&x)[10],這個10必須寫。//此方法用的少

//void printvalue_4(int &x[10])

void printvalues_4(int (&x)[10])//寫上(&x)小括號,表示x是引用,它引用的陣列;不寫,int & x[10]的x是陣列,陣列裡面的是引用。

//多維陣列的傳遞

void printvalues_5(int(*x)[10], int rowsize)

//x是乙個指標,指向乙個有很多行的陣列的第一行,每行10個數。一共有rowsize行

cout << endl;

}}//傳遞兩個指標

void printvalues_6(const int *beg, const int *end)//*beg指向陣列的第乙個元素,*end指向陣列的最後乙個元素的下乙個

cout << endl;

}//傳遞c風格陣列,x指標,指向字元陣列的第乙個字元,最有乙個字元是null,\0;

void printchars(const char *x)

int main();

printvalues(arr,10);

cout << "第二次輸出:"

cout << "第三次次輸出:" << endl;

printvalues_3(arr, 10);

傳引用的方式

cout << "傳引用的方式:" << endl;

printvalues_4(arr);

int m[10]=

, ,

}; cout << "多維陣列的傳遞:" << endl;

printvalues_5(m, 3);

cout << "傳遞兩個指標:" << endl;

printvalues_6(arr,arr+10);

char s = "hello c++";//c風格陣列

cout << "傳遞c風格陣列:" << endl;

printchars(s);

return 0;

}

ca55a c 函式引數傳遞

ca55a c 函式引數傳遞 非引用形參 txwtech 非引用形參,傳引數,就是copy 1.普通形參 非const形參 const形參,不能修改 2.指標形參 非const指標形參 const指標形參 addone2 a2 error c2664 void addone2 int 無法將引數 1...

函式引數傳遞

引數傳遞的本質 實參給形參賦值的過程 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 ...