Page 588 - Informatica dalla A a Z
P. 588

printf(" Indirizzo di punt_int: %x\n", &punt_int);

                  printf(" Contenuto di punt_int: %x\n", punt_int);
                  printf("Valore a cui punta punt_int: %d\n", *punt_int);
              } /* Fine di void main(void) */


           Esercizio:
           Spiegare la differenza tra:
              p = q;

           e
              *p = *q;
           Nel primo caso si impone che il puntatore p punti alla stessa variabile a cui punta q.
           Nel secondo caso si assegna il valore della variabile puntata da q al valore della variabile
           puntata da p.



                                                    Puntatori ed Array


           In C esiste una parentela stretta tra array e puntatori.
           Il nome di un array è una costante (simbolica) di tipo puntatore, avente come valore “l’in-

           dirizzo della prima cella di allocazione dell’array”.
           Sappiamo che un vettore è un insieme finito di N variabili dello stesso tipo, ognuna identi-
           ficata da un indice intero compreso fra 0 e N-1. In C, un vettore rappresenta un puntatore
           che punta a un’area di memoria preallocata di dimensione prefissata.


           Nota: Il nome di un vettore senza l’indice, punta al suo primo elemento.

           Esempio:
              int vet[10];
               //vet e &vet[0] hanno lo stesso valore
               printf(“%p %p”, vet, &vet[0]);  //stampa 2 volte lo stesso indirizzo.


           Vediamo come si può gestire una stringa attraverso un array di caratteri, prima nella ma-
           niera classica e poi con l’uso dei puntatori.



              #include <stdio.h>
              #include <stdlib.h>
               main()
              {
                int i=0;
                 char atest[]= “Pippo Baudo”;
                char *ptest = “pippo baudo”;
                 printf(“Stringa con array\n”);
                while (atest[i] != ‘\0’)
                 {

                                                            584
   583   584   585   586   587   588   589   590   591   592   593