PUNTATORI

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
adsl
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 397
Iscrizione: lunedì 13 novembre 2006, 12:54
Contatti:

PUNTATORI

Messaggio da adsl »

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
Contribuite al progetto -> www.luminaris.altervista.org

il mio blog
Avatar utente
l3on
Rampante Reduce
Rampante Reduce
Messaggi: 6450
Iscrizione: sabato 20 maggio 2006, 19:03
Località: Bologna
Contatti:

Re: PUNTATORI

Messaggio da l3on »

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
Puoi pensare al puntatore con un semplice collegamento in ambito grafico (cio'' un qualcosa che punta ad un''altra cosa "fisica").
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.
gelina
Prode Principiante
Messaggi: 52
Iscrizione: lunedì 6 novembre 2006, 8:47

Re: PUNTATORI

Messaggio da gelina »

Prova a dare un'occhiata qua

http://programmazione.html.it/guide/lez ... puntatori/

Da una definizione chiara di che cosa sia un puntatore.

Ciao
danlugli

Re: PUNTATORI

Messaggio da danlugli »

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
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: Majestic-12 [Bot] e 5 ospiti