PUNTATORI
PUNTATORI
Salve a tutti...scusate ma mi occupo da poko di programmazione C...non mi è chiaro il funzionamento dei puntatori...se c e qualcuno che puo spiegarmelo e magari farmi anch e qualche esempio....grazie mille
- l3on
- Rampante Reduce

- Messaggi: 6450
- Iscrizione: sabato 20 maggio 2006, 19:03
- Località: Bologna
- Contatti:
Re: PUNTATORI
Puoi pensare al puntatore con un semplice collegamento in ambito grafico (cio'' un qualcosa che punta ad un''altra cosa "fisica").adsl ha scritto: Salve a tutti...scusate ma mi occupo da poko di programmazione C...non mi è chiaro il funzionamento dei puntatori...se c e qualcuno che puo spiegarmelo e magari farmi anch e qualche esempio....grazie mille
Questo per dirlo "papale papale" (rotfl)
Pagina Personale sul Wiki - Sito Personale - Blog | `l3on @ ubuntu.com` .
Ex "Membro del Consiglio, Sysadmin e Web-Designer dei portali della comunità, Amministratore del Sito e tante altre cose..." Con Ubuntu-it dal maggio del 2006.
Ex "Membro del Consiglio, Sysadmin e Web-Designer dei portali della comunità, Amministratore del Sito e tante altre cose..." Con Ubuntu-it dal maggio del 2006.
Re: PUNTATORI
Prova a dare un'occhiata qua
http://programmazione.html.it/guide/lez ... puntatori/
Da una definizione chiara di che cosa sia un puntatore.
Ciao
http://programmazione.html.it/guide/lez ... puntatori/
Da una definizione chiara di che cosa sia un puntatore.
Ciao
-
danlugli
Re: PUNTATORI
Codice e dati risiedono in memoria ram.
Per semplicità (trascurando una mezza tonnellata di cose che ci stanno in mezzo) immagina la memoria ram come una sequenza di bytes numerabili (indirizzabili) da 0 a dimensione ram - 1.
Il puntatore è sostanzialmente questo numero, con in più qualche informazione sul tipo del puntato, per cui incrementare un puntatore a carattere equivale ad aggiungere 1 mentre incrementare un puntatore a intero equivale ad aggiungere 4 (cioé sizeof int, almeno su macchine a 32/64 bit).
Quando usi una variabile non puntatore è il compilatore che si occupa, senza neanche fartelo sapere, di andare a prendere la cosa giusta all'indirizzo giusto.
Quando usi un puntatore sei tu che devi pensarci con il dereferencing.
Ad esempio:
int i = 3; /* la variabile i sta ad un certo indirizzo in memoria, non sappiamo quale */
printf ("%d\n", i); /* Il compilatore si occupa di andarla a beccare là dove sta */
int * iptr = &i; /* iptr è l'indirizzo della variabile i */
printf ("%d\n", *iptr); /* sei tu che devi fare il dereferencing mettendoci davanti l'asterisco */
Saluti
Per semplicità (trascurando una mezza tonnellata di cose che ci stanno in mezzo) immagina la memoria ram come una sequenza di bytes numerabili (indirizzabili) da 0 a dimensione ram - 1.
Il puntatore è sostanzialmente questo numero, con in più qualche informazione sul tipo del puntato, per cui incrementare un puntatore a carattere equivale ad aggiungere 1 mentre incrementare un puntatore a intero equivale ad aggiungere 4 (cioé sizeof int, almeno su macchine a 32/64 bit).
Quando usi una variabile non puntatore è il compilatore che si occupa, senza neanche fartelo sapere, di andare a prendere la cosa giusta all'indirizzo giusto.
Quando usi un puntatore sei tu che devi pensarci con il dereferencing.
Ad esempio:
int i = 3; /* la variabile i sta ad un certo indirizzo in memoria, non sappiamo quale */
printf ("%d\n", i); /* Il compilatore si occupa di andarla a beccare là dove sta */
int * iptr = &i; /* iptr è l'indirizzo della variabile i */
printf ("%d\n", *iptr); /* sei tu che devi fare il dereferencing mettendoci davanti l'asterisco */
Saluti
Chi c’è in linea
Visualizzano questa sezione: Majestic-12 [Bot] e 5 ospiti
