Memory usage with parameters

#include <stdio.h>

void in_out(int *, int *);
void in_only(int, int);
void out_only(int *, int *);

int main(void)
{
  int number1 = 50, number2 = 42;

  printf("\nIn main ");
  printf("\nValue of number1 = %d\n", number1);
  printf("Address of number1 = %x\n", &number1);
  printf("\nValue of number2 = %d\n", number2);
  printf("Address of number2 = %x\n", &number2);
 
  in_out(&number1, &number2);
  printf("\nIn main ");
  printf("\nValue of number1 = %d\n", number1);
  printf("Address of number1 = %x\n", &number1);
  printf("\nValue of number2 = %d\n", number2);
  printf("Address of number2 = %x\n", &number2);

  in_only(number1, number2);
  printf("\nIn main ");
  printf("\nValue of number1 = %d\n", number1);
  printf("Address of number1 = %x\n", &number1);
  printf("\nValue of number2 = %d\n", number2);
  printf("Address of number2 = %x\n", &number2);

  out_only(&number1, &number2);
  printf("\nIn main ");
  printf("\nValue of number1 = %d\n", number1);
  printf("Address of number1 = %x\n", &number1);
  printf("\nValue of number2 = %d\n", number2);
  printf("Address of number2 = %x\n", &number2);

  return (0);
}


void in_out(int *number1, int *number2)
{
  printf("\nIn in_out ");
  printf("\nValue of *number1 = %d", *number1);
  printf("\nValue of number1 = %x\n", number1);
  printf("Address of number1 = %x\n", &number1);
  printf("\nValue of *number2 = %d", *number2);
  printf("\nValue of number2 = %x\n", number2);
  printf("Address of number2 = %x\n", &number2);
  *number1 = 100;
  *number2 = 200;
}


void in_only(int num1, int num2)
{
  printf("\nIn in_only ");
  printf("\nValue of num1 = %d\n", num1);
  printf("Address of num1 = %x\n", &num1);
  printf("\nValue of num2 = %d\n", num2);
  printf("Address of num2 = %x\n", &num2);
  num1 = 100;
  num2 = 200;
}


void out_only(int *num1, int *num2)
{
  printf("\nIn out_only ");
  printf("\nValue of *num1 = %d", *num1);
  printf("\nValue of num1 = %x\n", num1);
  printf("Address of num1 = %x\n", &num1);
  printf("\nValue of *num2 = %d", *num2);
  printf("\nValue of num2 = %x\n", num2);
  printf("Address of num2 = %x\n", &num2);
  *num1 = 10;
  *num2 = 20;
} 


In main Value of number1 = 50 Address of number1 = 1ffff108 Value of number2 = 42 Address of number2 = 1ffff100 In in_out Value of *number1 = 50 Value of number1 = 1ffff108 Address of number1 = 1ffff0e8 Value of *number2 = 42 Value of number2 = 1ffff100 Address of number2 = 1ffff0e0 In main Value of number1 = 100 Address of number1 = 1ffff108 Value of number2 = 200 Address of number2 = 1ffff100 In in_only Value of num1 = 100 Address of num1 = 1ffff0e8 Value of num2 = 200 Address of num2 = 1ffff0e0 In main Value of number1 = 100 Address of number1 = 1ffff108 Value of number2 = 200 Address of number2 = 1ffff100 In out_only Value of *num1 = 100 Value of num1 = 1ffff108 Address of num1 = 1ffff0e8 Value of *num2 = 200 Value of num2 = 1ffff100 Address of num2 = 1ffff0e0 In main Value of number1 = 10 Address of number1 = 1ffff108 Value of number2 = 20 Address of number2 = 1ffff100