In questa settimana puntata, si parlerà dei puntatori, uno dei principali strumenti nella programmazione in C. Un puntatore, per definizione, contiene un generico indirizzo in memoria. Vediamo alcuni esempi in cui si utilizzano i puntatori.
/*Programma che illustra i puntatori, attraverso la printf del suo valore*/
#include <stdio.h>
int main(void)
{
//Dichiaro una varabiale associata al numero 5 e un puntatore
int numero=5;
int *p;
//Attraverso la printf, vengono spiegati i vari valori delle variabili
printf(“La variabile vale %d, e si trova all’indirizzo di memoria %pn”,numero,&numero);
//p assume l’indirizzo della variabile numero
p=№
printf(“Il valore del puntatore è %pn”,p);
//Il puntatore accede all’indirizzo di memoria della variabile numero
*p=numero;
printf(“Il valore del puntato da p è %dn”,*p);
return0;
}
Da notare, che per accedere ad un variabile attraverso un puntatore, bisogna utilizzare il simbolo *, che si significa il “puntata da … è….”, mentre per fare una printf di un puntatore, bisogna utilizzare %p.
Nel prossima programma viene illustrato come è possibile utilizzare i puntatori, per scrivere all’interno di un vettore di numeri.
//Programma che illustra il funzionamento dei puntatori, per inserire dei numeri all’interno di un vettore di tipo intero
#include <stdio.h>
int main()
{
//Dichiaro un vettore di tipo int e un puntatore
int vett[10];
int *p;
int i;
p = vett; /* equivalente a p = &vet[0] */
//Attraverso un puntatore vengono inseriti i numeri all’interno del vettore
for (i = 0; i < 10; i++)
*(p + i) = 100 + i;
for (i = 0; i < 10; i++)
printf(“%d “, vett[i]);
printf(“n”);
return0; }
Da questi esempi, si può notare come vettori e puntatori siano molto simili; infatti è vero. Il modo corretto di accostare i concetti di puntatori e vettori è di considerare che l’aritmetica dei puntatori è equivalente al metodo di indicizzazione dei vettori .
1 commento
Castellammare di Stabia, 30/12/2014
Ti invito a visitare il mio sito puntatori.tk oppure http://thpitagora.altervista.org/puntatori.pdf
Il sito tratta dei puntatori nel linguaggio C
Cordiali saluti
Francesco