#include <stdio.h>

void byvalue(int x)
{
  x=2;
  printf("Inside by-value   procedure,  x: %d\n",x); 
}

void byaddress(int* x)
{
  *x=2;
  printf("Inside by-address procedure, *x: %d\n",*x); 
  printf("Inside by-address procedure (before null assignment),  x: %ld\n",x); 
  x=0;
  printf("Inside by-address procedure (after  null assignment),  x: %ld\n",x); 
}

int main()
{
  int y=1;
  printf("Before by-value   procedure,  y: %d\n",y); 
  byvalue(y);
  printf("After  by-value   procedure,  y: %d\n",y); 
  byaddress(&y);
  printf("After  by-address procedure,  y: %d\n",y); 
}
