/* File: parametr.c */
/* Time-stamp: "2001-04-02 13:55:22 calvanes" */
/* Scopo: differenza tra passaggio di parametri per valore e per indirizzo */

#include <stdio.h>

void fun(int x, int *p)
{
  x = 23;
  *p = 45;
}

int main(void)
{
  int a, b;
  int *q;

  a = 1;
  b = 15;

  printf("prima: a = %d,  b = %d\n", a, b);
  fun(a, &b);
  printf("dopo:  a = %d,  b = %d\n", a, b);

  a = 1;
  b = 15;
  q = &b;

  printf("prima: a = %d,  b = %d,  q = %p\n", a, b, q);
  fun(a, q);
  printf("dopo:  a = %d,  b = %d,  q = %p\n", a, b, q);

  return 0;
}

/* output

prima: a = 1,  b = 15,  q = 0xbffff820
dopo:  a = 1,  b = 45,  q = 0xbffff820
prima: a = 1,  b = 15
dopo:  a = 1,  b = 45

*/