Passing arrays in to functions
#include<iostream>
using std::cout;
using std::endl;
#include<iomanip>
using std::setw;
void modifyArray( int [], int ); // function having the first argument as an array
void modifyElement( int );
int main()
{
const int arraySize = 5; // size of array a
int a[ arraySize ] = { 0, 1, 2, 3, 4 }; // initializing array a
cout <<"Effects of passing entire array by reference:"
<<"\n\nThe values of the original array are:\n";
for ( int i = 0; i < arraySize; i++ )
cout << setw( 3 ) << a[ i ]; //displaying original array elements
cout << endl;
modifyArray( a, arraySize ); // passing array a to modifyArray by reference
cout <<"The values of the modified array are:\n";
for ( int j = 0; j < arraySize; j++ )
cout << setw( 3 ) << a[ j ]; // displaying modified array elements
cout <<"\n\n\nEffects of passing array element by value:"
<<"\n\na[3] before modifyElement: "<< a[ 3 ] << endl;
modifyElement( a[ 3 ] ); // passing array element a[ 3 ] by value
cout <<"a[3] after modifyElement: "<< a[ 3 ] << endl;
return 0; // indicates successful termination
} // end main
// in function modifyArray, "b" points to the original array "a" in memory
void modifyArray( int b[], int sizeOfArray )
{
for ( int k = 0; k < sizeOfArray; k++ )
b[ k ] *= 2; // multiplying each array element by 2
} // end of unction modifyArray
// in function modifyElement, "e" is a local copy of array element a[ 3 ] passed from main
void modifyElement( int e )
{
cout <<"Value of element in modifyElement: "<< ( e *= 2 ) << endl; // multiply parameter by 2
}// end of function modifyElement
EmoticonEmoticon