// assign2-contrast.C

#include <iostream.h>

// using references
void assign2(int& v1, int& v2,
             int  e1, int  e2)
{
  v1 = e1;    v2 = e2;
}

// using pointers
void assign2(int *v1, int *v2,
             int  e1, int  e2)
{
  *v1 = e1;  *v2 = e2;
}

static int i = 3;  static int j = 4;

void printem()
{
  cout << "i is " << i
       << " j is " << j << endl;
}

int main()
{
  // call using reference version
  assign2(i,   j, j+1, i+1);
  printem();

  // call using pointer version
  assign2(&i, &j, j+1, i+1);
  printem();
}
