#include <iostream>

void square(int i)
{
    i = i*i;
}

void squareReference(int &i)
{
    i = i*i;
}

int squareConstReference(const int &i)
{
    /*  i = i*i; this wont compile */
    return i*i;
}

int main()
{
    int i = 5, j=5, k=5;
    square(i);
    cout << "Pass by value i = "<< i<<endl;
    squareReference(j);
    cout << "Pass by reference j = "<< j<<endl;
    squareConstReference(i);
    cout << "Pass by cost reference k = "<< k << endl;
}


