/*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 ...