下面列出以陣列做為引數的例子來對比一下區別:
1.void putvalues( int[ 10 ] ); //相當於傳遞 int *,陣列的長度將不檢測等價的表示如下: void putvalues( int* ); void putvalues( int );
2.傳遞陣列的指標及陣列的長度 void putvalues( int *ia, int sz ) 3.如果想一定要傳入陣列的長度,可以傳遞指定長度陣列的引用 void putvalues( int (&arr)[10] );
4.多維陣列做為函式的引數,並且傳入除第一組外的陣列長度 void putvalues( int matrix[1a], int rowsize );
指標做為引數傳遞
如果乙個函式的引數是乙個指標,不能用此指標去動態申請記憶體,include include using namespace std void getmemory char p,int size void test int main void 傳送錯誤是因為 getmemory 函式中申請記憶體的時候...
Map以自定義類做為鍵值
map在stl中的定義 template class alloc alloc 第乙個引數key是關鍵字型別 第二個引數t是值型別 第三個引數compare是比較函式 仿函式 第四個引數是記憶體配置物件 map內部儲存機制實際是以紅黑樹為基礎,紅黑樹在插入節點時,必須依照大小比對之後在乙個合適的位置上...
Map以自定義類做為鍵值
map在stl中的定義 template class alloc alloc 第乙個引數key是關鍵字型別 第二個引數t是值型別 第三個引數compare是比較函式 仿函式 第四個引數是記憶體配置物件 map內部儲存機制實際是以紅黑樹為基礎,紅黑樹在插入節點時,必須依照大小比對之後在乙個合適的位置上...