home *** CD-ROM | disk | FTP | other *** search
/ ftp.disi.unige.it / 2015-02-11.ftp.disi.unige.it.tar / ftp.disi.unige.it / pub / .person / CataniaB / teach-act / esempi / Puntatori / punta1.c < prev    next >
C/C++ Source or Header  |  1997-04-06  |  876b  |  39 lines

  1. #include <stdio.h>
  2.  
  3. /* Passaggio dei parametri usando i puntatori: idea uso come 
  4.    valori degli indirizzi che poi utilizzo per modificare locazioni
  5.    di memoria */
  6.  
  7. void inc(int* p) 
  8.     /* incrementa di uno il valore "puntato" da p */
  9.   { 
  10.     *p=*p+1;   /* oppure (*p)++;  */
  11.   }
  12.  
  13. void myscanf(int* x)
  14.               /* ecco il perche' di & nella scanf !!! */
  15.   {   
  16.    scanf("%d",x);
  17.   }
  18.  
  19. /* Occhio alla seguente definizione  */
  20.  
  21. void noscanf(int x)
  22.   { 
  23.     scanf("%d",&x);  /* non ha side effect sul parametro! */
  24.   }
  25.  
  26. main()
  27. {
  28.   int x;
  29.  
  30.   myscanf(&x);      /* legge valore V e lo associa ad x */
  31.   inc(&x);          /* passo a inc l'indirizzo di x! 
  32.                      * (inc incrementa x di 1) */
  33.   printf("%d",x);   /* stampa V+1 */
  34.  
  35.   noscanf(x);       /* passo a scanf1 il "valore" di x! cioe' V+1 */
  36.   printf("%d",x);  /* stampa il valore di x cioe' V+1 */
  37.  
  38. }
  39.