传入一维数组到函数 Passing 1D array to function
Since arrays are always passed by reference, all changes made to the array elements inside the function will be made to the original array.
int ProcessValues (int [], int ); // works with ANY 1-d array
Example:
#include <iostream> using namespace std; int SumValues (int [], int ); //function prototype void main( ) { int Array[10]={0,1,2,3,4,5,6,7,8,9}; int total_sum; total_sum = SumValues (Array, 10); //function call cout <<”Total sum is “ <<total_sum; } int SumValues (int values[], int num_of_values) //function header { int sum = 0; for( int i=0; i < num_of_values; i++) sum+=values[i]; return sum; }
The only way to protect the elements of the array from being inadvertently changed, is to declare an array to be a const parameter.
#include <iostream> using namespace std; int SumValues (const int [], int); //function prototype int main( ) { const int length =10; int Array[10]={0,1,2,3,4,5,6,7,8,9}; int total_sum; total_sum = SumValues (Array, length); //function call cout <<”Total sum is “ <<total_sum; return 0; } int SumValues (const int values[], int num_of_values) //function header { int sum = 0; for( int i=0; i < num_of_values; i++) sum+=values[i]; return sum; }
Reference:
http://stackoverflow.com/questions/23035407/passing-1d-and-2d-arrays-by-reference-in-c
http://doursat.free.fr/docs/CS135_S06/CS135_S06_8_1D_Arrays2.pdf

浙公网安备 33010602011771号