c/c++ 數組傳參


在c/c++中,在進行數組傳參時,數組的元素個數默認是不作為實參傳入調用函數,也就是說c/c++ 不允許向函數傳遞一個完整的數組作為參數

實例:

1.形式參數是一個指針,實參包括數組長度:

1  void myFunction(int *param,int length){ 2 for (int i = 0; i<length - 1; i++) 3  { 4 cout << param[i] << "\t"<<endl; 5  } 6 }

 

2.形式參數是一個已定義大小的數組:

1 void myFunction(int param[10]) 2 { 3 for (int i = 0; i<9; i++) 4  { 5 cout << param[i] << "\t" << endl; 6  } 7 }

 

3.形式參數是一個未定義大小的數組,實參包括數組長度:

1 void myFunction(int param[],int length){ 2 for (int i = 0; i < length - 1; i++) 3  { 4 cout << param[i] << "\t"<<endl; 5  } 6 }

 

主函數調用方法:

 1 #include<iostream>
 2 using std::cout;  3 using std::endl;  4 #define SIZE 10  5 class NewMessage{  6 private:  7 //一般用來聲明變量  8  9 public: 10 int array[SIZE]; 11 void myFunctionOne(int *param,int length); 12 void myFunctionTwo(int param[SIZE]); 13 void myFunctionThree(int param[], int length); 14 }; 15 void main() 16 { 17  NewMessage newMessage; 18 newMessage.array[SIZE] = {1}; 19 newMessage.myFunctionOne(newMessage.array, SIZE);//方法1 20 newMessage.myFunctionThree(newMessage.array, SIZE);//方法2 21 newMessage.myFunctionTwo(newMessage.array);//方法3 22 } 23 //1.形式參數是一個指針,實參包括數組長度: 24 void NewMessage::myFunctionOne(int *param,int length){ 25 for (int i = 0; i<length - 1; i++) 26  { 27 cout << param[i] << "\t" << endl; 28  } 29 } 30 31 //2.形式參數是一個未定義大小的數組,實參包括數組長度: 32 void NewMessage::myFunctionThree(int param[], int length){ 33 for (int i = 0; i < length - 1; i++) 34  { 35 cout << param[i] << "\t" << endl; 36  } 37 } 38 39 //3.形式參數是一個已定義大小的數組: 40 void NewMessage::myFunctionTwo(int param[SIZE])//注意:這種用法跟 void NewMessage::myFunctionTwo(int (&param)[SIZE])用法一樣 41 { 42 for (int i = 0; i<SIZE; i++) 43  { 44 cout << param[i] << "\t" << endl; 45  } 46 }

 

如果想要傳入一個數組是一個任意大小的那么應該用以下方法:

1 template<int N> 2 void function(int (&array)[N]);//此方法叫非類型模板參數
//任意大小的int型數組都可傳入


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM