First: Why would you want to? You could declare it const if you didn't want it to change anything.
An array is similar to (but not exactly the same as) a pointer to the first value of that array. You are effectively passing a pointer to a memory location.
//Pass by reference
modifyArray(a, arraySize);
//Function for passing by reference
void modifyArray(int b[], int sizeOfArray)
{
for (int k = 0; k < sizeofArray; ++k)
b[k] *= 2;
}
//Function modifyElement( int e)
{
cout << "Value of element in modifyElement: "<< (e *= 2) endl;
}
//pass by value
modifyElement (a[3]);