Puntatori in C. Fondamenti di Informatica. Daniele Loiacono

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Puntatori in C. Fondamenti di Informatica. Daniele Loiacono"

Transcript

1 Puntatori in C Fondamenti di Informatica

2 Puntatori

3 Come è fatta la memoria del calcolatore?

4 Un modello concettuale della memoria q La memoria centrale di un calcolatore è una sequenza di celle numerate (da 0 fino a un valore massimo N-1) Il numero che identifica ogni cella è detto indirizzo Le dimensione delle celle diende dal tio di calcolatore (nei calcolatori recenti è 8 bit) q Anche gli indirizzi sono raresentati da una sequenza di bit La dimensione degli indirizzi diende dal sistema oerativo Oggi, si usano 32/64 bit er gli indirizzi N-1 8 bit

5 Variabili e memoria q Cosa succede quando dichiariamo una variabile in un rogramma C? q Esemio il comilatore sceglie un oortuno indirizzo di memoria er ositarla ossono essere necessarie iù celle er ositare una variabile il comilatore associa il nome della variabile all indirizzo scelto x x+1 x+2 x+3 y 8 bit var1 var2 float var1; char var2;

6 Possiamo accedere alle variabili tramite il loro indirizzo? In C è ossibile grazie ai untatori!

7 Cosa è un untatore? q Un untatore è un tio di dato che viene utilizzato in C er dichiarare una variabile che deve contenere un indirizzo di una cella di memoria. q In gergo, si dice che la variabile untatore unta alla cella di memoria, il cui indirizzo è contenuto nella variabile untatore. q Quando viene dichiarata una variabile untatore, è necessario anche secificare il tio di dato contenuto nelle celle di memoria che verranno untate dalla variabile. q La sintassi er dichiarare una variabile untatore è: tio *nome;

8 Oeratore & q Come si assegna un indirizzo di memoria di una variabile ad un untatore? float var; float *; x var var=; x+3 = &var; var x q L oeratore & ( indirizzo di ) è un oeratore unario e restituisce l indirizzo di memoria di una variabile qualunque: &variabile

9 Abbiamo svelato il mistero della scanf scanf( str ctrl,indirizzo) q La funzione scanf ha come arametri la stringa di controllo e l indirizzo delle variabile in cui deve essere memorizzato il valore letto da tastiera.

10 Dereferenziazione di un untatore q Come si accede al contenuto della cella di memoria untata dal untatore *untatore x float var1,var2; var1 float *; x+3 var1 = ; = &var1; var1 var2??? z x??? var2 z+3

11 Dereferenziazione di un untatore q Come si accede al contenuto della cella di memoria untata dal untatore *untatore x float var1,var2; var1 float *; x+3 var1 = ; = &var1; var2 = *; var1 var2 z x var2 z+3

12 Dereferenziazione di un untatore q Come si accede al contenuto della cella di memoria untata dal untatore *untatore x float var1,var2; 5.1 var1 float *; x+3 var1 = ; = &var1; var2 = *; var1 var2 5.1 z x * = 5.1; var2 z+3

13 Oerazioni sui untatori q Inizializzazione float * = NULL;

14 Oerazioni sui untatori q Inizializzazione float * = NULL; q Assegnamento fra untatori float a=; float *1=NULL,*2=NULL; 1 2 a

15 Oerazioni sui untatori q Inizializzazione float * = NULL; q Assegnamento fra untatori float a=; float *1=NULL,*2=NULL; 1 = &a; 1 2 a

16 Oerazioni sui untatori q Inizializzazione float * = NULL; q Assegnamento fra untatori float a=; float *1=NULL,*2=NULL; 1 = &a; 2 = 1; 1 2 a

17 Oerazioni sui untatori q Inizializzazione float * = NULL; q Assegnamento fra untatori float a=; float *1=NULL,*2=NULL; 1 = &a; 2 = 1; 1 2 a q Assegnamento con dereferenziazione float a=,b; float *1=NULL,*2=NULL; 1 2 a b???

18 Oerazioni sui untatori q Inizializzazione float * = NULL; q Assegnamento fra untatori float a=; float *1=NULL,*2=NULL; 1 = &a; 2 = 1; 1 2 a q Assegnamento con dereferenziazione float a=,b; float *1=NULL,*2=NULL; 1 = &a; 1 2 a b???

19 Oerazioni sui untatori q Inizializzazione float * = NULL; q Assegnamento fra untatori float a=; float *1=NULL,*2=NULL; 1 = &a; 2 = 1; 1 2 a q Assegnamento con dereferenziazione float a=,b; float *1=NULL,*2=NULL; 1 = &a; 2 = &b; 1 2 a b???

20 Oerazioni sui untatori q Inizializzazione float * = NULL; q Assegnamento fra untatori float a=; float *1=NULL,*2=NULL; 1 = &a; 2 = 1; 1 2 a q Assegnamento con dereferenziazione float a=,b; float *1=NULL,*2=NULL; 1 = &a; 2 = &b; *2=*1; 1 2 a b

21 Aritmetica dei untatori q Il C consente di effettuare somme e sottrazioni sui untatori float *; x x+4 x+8 float a; =&a; x a

22 Aritmetica dei untatori q Il C consente di effettuare somme e sottrazioni sui untatori float *; float a; =&a; *(+1)=4.5; x x+4 x x a

23 Aritmetica dei untatori q Il C consente di effettuare somme e sottrazioni sui untatori float *; float a; =&a; *(+1)=4.5; =+2; x a x+4 x x+8

24 Aritmetica dei untatori q Il C consente di effettuare somme e sottrazioni sui untatori float *; x x+4 x+8 float a; =&a; *(+1)=4.5; 4.5 x+8 =+2; q Sintassi a untatore = untatore+x q Semantica incrementa/decrementa l indirizzo contenuto nel untatore di x osizioni la dimensione di ogni osizione, diende dal tio del untatore (es., 4 byte er un float, 1 byte er un char)

25 Ricordate la funzione sizeof? sizeof(<arg>) q Se <arg> è un tio di dato, ritorna la quantità di memoria (in byte) necessaria er raresentare un valore di quel tio una variabile scalare, ritorna la quantità di memoria (in byte) occuata da quella variabile un array, ritorna la quantità di memoria (in byte) occuata dall intero array

26 La funzione sizeof: esemi float f,v[5],*f; char c,*c; rintf("%lu\n",sizeof(f)); //stama 4 rintf("%lu\n",sizeof(v)); //stama 20 (5*4 byte) rintf("%lu\n",sizeof(f)); //stama 8 (64 bit) rintf("%lu\n",sizeof(*f)); //stama 4 rintf("%lu\n",sizeof(c)); //stama 1 rintf("%lu\n",sizeof(c)); //stama 8 (64 bit) rintf("%lu\n",sizeof(char)); //stama 1 rintf("%lu\n",sizeof(float)); //stama 4

27 Puntatori a struct q Sia il untatore ad un tio struct, allora: (*).camo ->camo q Esemio //sia un untatore definito come segue struct { float a;} *, var; P = &var; //le seguenti notazioni sono equivalenti (*).a = 4.5; ->a = 4.5;

28 Array e untatori

29 Gli array nella memoria centrale q Un array viene memorizzato come un blocco contiguo a artire da un indirizzo di artenza (indirizzo base) a 1.0 a[0] q Il nome della variabile array (senza secificare la osizione con []) equivale l indirizzo di artenza (del rimo elemento dell array) 2.1 a[1] 3.2 a[2] q Esemio float a[3]={1.0,2.1,3.2};

30 Usare gli array come untatori q E ossibile accedere ad un array attraverso i untatori float a[5]; for (int i=0; i<5; i++) scanf( %f,a+i); q Più in generale, se a è una variabile di tio array a[i] *(a+i) q Dimensione e offset di un array float a[5]; float * = &a[3]; rintf( dimensione a: %lu, sizeof(a)/sizeof(float)); //stama 5 rintf( osizione : %lu, -a); //stama 3

31 Ancora su array e untatori int *, a[5]; = a; q Abbiamo già visto scrivere a all interno di un istruzione, significa scrivere un indirizzo di memoria (l indirizzo base dell array a) q Tuttavia a e non sono rorio la stessa cosa: a è un valore untatore (un indirizzo) costante (non modificabile) a è ossibile assegnare un valore (un indirizzo di memoria) mentre non è ossibile farlo con a osso scrivere a al osto di in tutte le istruzioni che non modificano il valore di, ma che lo utilizzano soltanto

32 Ecco erché q non è ossibile usare l oeratore = er coiare il contenuto di un array o di una stringa float a[5],b[5]; b=a; //errore: b ed a sono solo gli indirizzi base q non si usa & er leggere una stringa: il nome della variabile è già il suo indirizzo! q non si uò usare l oeratore == er confrontare due array o due stringhe char a[20],b[20]; if(a==b) //vero se a e b hanno lo stesso indirizzo

33 Funzioni e untatori

34 Puntatori come arametri q In C, i arametri di una funzione ossono essere dei untatori. q Cosa succede? Niente di diverso dal solito void fun(float *a){ a++; } int main() { float f=,*; =&f; fun(); return 0; } &f a &f &f a &f+1 f f???

35 Puntatori come arametri (2) q Attenzione erò void fun(float *a){ *a=0; } int main() { float f=,*; =&f; fun(); return 0; } &f a &f &f a &f f f 0

36 Puntatori come arametri (2) q Ecco erché si arla (un o imroriamente) di assaggio er indirizzo e er valore: void fun(float *a){ *a=0; } int main() { float f=; fun(&f); return 0; } &f a &f &f a &f f f 0

37 Array come arametri q In C, ci sono diverse notazioni che si ossono usare er dichiarare un arametro di tio array: void f(float a[dim]); void f(float a[]); void f(float *a); q La differenza è solo estetica: tutte e tre le varianti si comortano allo stesso modo. q Quindi, assare un argomento array ad una funzione equivale a assare l indirizzo base dell array Attenzione a non modificare l array accidentalmente! Attenzione all uso di sizeof()!

38 Funzioni che ritornano un untatore q Può una funzione ritornare un untatore? int *array_vuoto(int n) { int a[n]; for (int i = 0; i < n; i++) a[i]=0; } return a; q Sintatticamente la funzione è corretta, ma cosa succede quando la funzione è conclusa?

39 Matrici e untatori

40 Matrici e untatori q In maniera simile agli array, le matrici vengono memorizzate come un blocco contiguo a artire da un indirizzo base, riga doo riga. q Il nome della variabile matrice (usato senza secificare un indice di riga e colonna con []), è l indirizzo base della matrice. q Esemio M M ß &M[0][0] a b c d e f M[0][0] M[0][1] M[0][2] M[1][0] M[1][1] M[1][2] char M[2][3]={{ a, b, c },{ d, e, f }};

41 Matrici e untatori (2) float M[5][4]; q M non è un untatore float: float * float * = M; //genera un warning q M è un untatore ad un array di 4 float: float (*)[4] float (*)[4] = M; // unta alla rima riga di M q E comunque ossibile untare ad un singolo elemento di M float * = &M[i][j]; //unta all elemento M[i][j] q Le oerazioni di aritmetica sul untatore hanno un effetto diverso a seconda di come è dichiarato il untatore float *1 = &M[0][0]; float (*2)[4] = M; 1+i è l indirizzo dell i-esimo elemento di M (letta er righe) 2+i denota l indirizzo di artenza dell i-esima riga di M 1+i equivale a &M[0][0]+i 2+i equivale a M+i

42 Matrici e untatori (3) q E ossibile accedere ad una matrice attraverso gli indirizzi float M[5][3]; for (int i=0; i<5; i++) for (int j=0; j<3; j++) scanf( %f,&m[0][0]+i*3+j); q Più in generale, se M è una matrice di r righe ed c colonne M[i][j] *(&M[0][0]+i*c+j) q Calcolare indice di riga e colonna di una float M[r][c]; //r e c costanti float * = &M[rr][cc]; // untatore ad un elemento di M int i = ( &M[0][0])/c; //calcola l indice di riga (div intera!) int j = ( &M[0][0])%c; //calcola l indice di colonna

43 Matrici e funzioni q Come er gli array, ci sono tre notazioni equivalenti er dichiarare un arametro formale di tio matrice: void f(float a[r][c]); void f(float a[][c]); void f(float (*a)[c]); q La differenza è solo estetica! Tutte e tre le varianti si comortano allo stesso modo, erché il arametro formale è un untatore ad un array di dimensione fissa. q E semre necessario secificare la seconda dimensione della matrice (numero di colonne), senza la quale l aritmetica degli indirizzi non otrebbe essere alicata correttamente.

44 Array di untatori vs untatore ad array q Un untatore ad un array è 1.1 sostanzialmente una matrice float (*)[3]; q Un array di untatori è iù flessibile e ermette di creare una matrice con righe di dimensione diverse float *[3]; [0] [1] [2]

Laboratorio di Informatica I

Laboratorio di Informatica I Struttura della lezione Lezione 15: Puntatori e stringhe Vittorio Scarano Corso di Laurea in Informatica Puntatori Relazione con gli arrays Aritmetica dei untatori Allocazione dinamica di memoria Puntatori

Dettagli

Problemi legati all'uso dei Puntatori

Problemi legati all'uso dei Puntatori Problemi legati all'uso dei Puntatori 1. Aree inutilizzabili: Possibilità di erdere l'indirizzo di aree di memoria allocate al rogramma che uindi non sono iù accessibili. (v. esemio recedente). 2. Riferimenti

Dettagli

GLI ARRAY 17/05/2013. Per definire un array è necessario fornire: Nome Come per le altre variabili. Tipo. int v [5];

GLI ARRAY 17/05/2013. Per definire un array è necessario fornire: Nome Come per le altre variabili. Tipo. int v [5]; GLI ARRAY Gli array Gli array sono strutture dati statiche, di tio sequenziale, che consentono la memorizzazione e la gestione di uno o iù dati omogenei (dello stesso tio) raggiungibili er mezzo di un

Dettagli

I parametri e il sovraccarico

I parametri e il sovraccarico I arametri e il sovraccarico Vediamo dei dettagli sul assaggio dei arametri. Parametri formali e attuali class Esemio { static void rimo(int x) { int y; rimo(24+3); variabile locale y è una variabile che

Dettagli

Puntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori

Puntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori Puntatori Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori 1 Il puntatore Un tipo puntatore è un tipo scalare per

Dettagli

Puntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori

Puntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori Puntatori Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori 1 Il puntatore Un tipo puntatore è un tipo scalare per

Dettagli

ARRAY DI PUNTATORI. ARRAY DI PUNTATORI Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di puntatori

ARRAY DI PUNTATORI. ARRAY DI PUNTATORI Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di puntatori ARRAY DI PUNTATORI Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di puntatori Ad esempio: char * stringhe[4]; definisce un vettore di 4 puntatori a carattere

Dettagli

Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di

Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di ARRAY DI PUNTATORI Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di puntatori Ad esempio: char * stringhe[4]; definisce un vettore di 4 puntatori a carattere

Dettagli

Laboratorio di algoritmi e strutture dati

Laboratorio di algoritmi e strutture dati Laboratorio di algoritmi e strutture dati Docente: Violetta Lonati mercoledì 5 novembre 2008 1 Esercizi introduttivi 1.1 La vostra malloc Scrivete una funzione my_malloc che allochi memoria usando la funzione

Dettagli

Puntatore. Ritorniamo sul problema dell accesso alle variabili

Puntatore. Ritorniamo sul problema dell accesso alle variabili Puntatori Puntatore Ritorniamo sul problema dell accesso alle variabili Nel linguaggio di von Neumann attraverso il loro indirizzo Nei linguaggi di alto livello attraverso il loro nome Però in taluni casi

Dettagli

Liste. Marco Alberti Programmazione e Laboratorio, A.A

Liste. Marco Alberti Programmazione e Laboratorio, A.A Liste Marco Aberti Programmazione e Laboratorio, A.A. 016-017 Diartimento di Matematica e Informatica - Università di Ferrara Utima modifica: 16 dicembre 016 Lista Raresenta una sequenza di entità deo

Dettagli

Tipi di dato strutturato. Tipi strutturati: il Record. Il Record. Il Record in C: struct

Tipi di dato strutturato. Tipi strutturati: il Record. Il Record. Il Record in C: struct Tii di dato strutturato drian ilincai 2900 21.0 Marco lbergamo 31000 27.0 Leonardo mico 8000 21.0 Massimiliano rino 100 19.2 Valerio Zerillo 4000 34. Il Record Esemio: Si vuole raresentare adeguatamente

Dettagli

definisce un vettore di 4 puntatori a carattere (allocata memoria per 4 puntatori)!

definisce un vettore di 4 puntatori a carattere (allocata memoria per 4 puntatori)! " Non ci sono vincoli sul tipo degli elementi di un vettore " Possiamo dunque avere anche vettori di puntatori Ad esempio: char * stringhe[4]; definisce un vettore di 4 puntatori a carattere (allocata

Dettagli

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Puntatori. Marco D. Santambrogio Ver. aggiornata al 11 Marzo 2014

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Puntatori. Marco D. Santambrogio Ver. aggiornata al 11 Marzo 2014 Puntatori Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 11 Marzo 2014 Immagini Struttura dati: typedef struct{ int R; int G; int B; } pixel pixel img[0][24]; Ma quanto è grossa

Dettagli

Strutture dinamiche in heap nel linguaggio C. E.Mumolo DIA

Strutture dinamiche in heap nel linguaggio C. E.Mumolo DIA Strutture dinamiche in hea nel linguaggio C E.Mumolo DIA Salviamo dei valori in un array a di in hea: Memoria hea a=.; stack *;... 12D =malloc(*sizeof()); *=.1; *(+1)=.1; Indirizzo di un =.1 =.1 +1 +2

Dettagli

ARRAY E TYPEDEF. A volte è utile definire un nuovo tipo di dato come array. Si usa la solita sintassi del linguaggio C

ARRAY E TYPEDEF. A volte è utile definire un nuovo tipo di dato come array. Si usa la solita sintassi del linguaggio C A volte è utile definire un nuovo tipo di dato come array. Si usa la solita sintassi del linguaggio C Es typedef ; typedef char stringa[10]; dichiara che il tipo stringa è un array

Dettagli

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Puntatori. Marco D. Santambrogio Ver. aggiornata al 4 Aprile 2013

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Puntatori. Marco D. Santambrogio Ver. aggiornata al 4 Aprile 2013 Puntatori Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 4 Aprile 201 WAT? WAT Lab Troppi exe, ne volevo di meno Vacanze W A Giovedì 28, Venerdì 29 e Lunedì 1 ma anche Martedì 2

Dettagli

Ogni variabile in C è una astrazione di una cella di memoria a cui corrisponde un nome, un contenuto e un indirizzo.

Ogni variabile in C è una astrazione di una cella di memoria a cui corrisponde un nome, un contenuto e un indirizzo. Ogni variabile in C è una astrazione di una cella di memoria a cui corrisponde un nome, un contenuto e un indirizzo. int a = 5; a 5 α=&a Esistono in C particolari variabili dette puntatori che possono

Dettagli

Verso i puntatori: Cosa è una variabile?

Verso i puntatori: Cosa è una variabile? Verso i puntatori: Cosa è una variabile? Quando si dichiara una variabile, ad es. int a; si rende noto il nome e il tipo della variabile. Il compilatore alloca l opportuno numero di byte di memoria per

Dettagli

Introduzione al linguaggio C Puntatori

Introduzione al linguaggio C Puntatori Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2017

Dettagli

argomenti (Sezione 9.1 e Capitolo 13 Savitch) puntatori puntatori I PUNTATORI E LE STRUTTURE DATI DINAMICHE 1. dichiarazioni di puntatori

argomenti (Sezione 9.1 e Capitolo 13 Savitch) puntatori puntatori I PUNTATORI E LE STRUTTURE DATI DINAMICHE 1. dichiarazioni di puntatori argomenti (Sezione 9. e Caitolo Savitch). dichiarazioni di untatori I PUNTATORI E LE STRUTTURE DATI DINAMICHE Cosimo Laneve. le oerazione su untatori (NULL, new, delete, &, *). untatori assati come arametri

Dettagli

Array multidimensionali e stringhe

Array multidimensionali e stringhe Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Array uni-dimensionali (richiami) Dichiarazione: int vet[100]; float x[50]; Gli elementi

Dettagli

Linguaggio C: puntatori

Linguaggio C: puntatori Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica A - GES Prof. Plebani A.A. 2006/2007 Linguaggio C: puntatori La presente dispensa e da utilizzarsi ai soli fini didattici previa

Dettagli

Indirizzi e puntatori

Indirizzi e puntatori Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Richiami sulle variabili Una variabile è costituita da una o più locazioni di memoria (a

Dettagli

C: panoramica. Violetta Lonati

C: panoramica. Violetta Lonati C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati

Dettagli

Cosa è una variabile?

Cosa è una variabile? Cosa è una variabile? Quando si dichiara una variabile, ad es. int a; si rende noto il nome e il tipo della variabile. Il compilatore alloca l opportuno numero di byte di memoria per contenere il valore

Dettagli

Puntatori : idea di base

Puntatori : idea di base Puntatori 2 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo dell'area di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50; /* una var intera */ Puntatori

Dettagli

Introduzione ai puntatori in C Definizione

Introduzione ai puntatori in C Definizione Introduzione ai puntatori in C Definizione Un puntatore è una variabile che contiene l indirizzo di un altra variabile Tramite i puntatori si può quindi accedere a un oggetto indirettamente (si usa il

Dettagli

POINTERS. Una variabile pointer è una variabile che ha come valore un indirizzo di memoria.

POINTERS. Una variabile pointer è una variabile che ha come valore un indirizzo di memoria. POINTERS Una variabile pointer è una variabile che ha come valore un indirizzo di memoria. Es. Sia y una variabile intera di valore e sia yptr una variabile pointer avente come valore l indirizzo di y.

Dettagli

Introduzione al C Lez. 3. Puntatori

Introduzione al C Lez. 3. Puntatori Introduzione al C Lez 3 Puntatori Variabili e memoria Variabile tradizionale Es: int a = 10; Proprietà: - nome: a - tipo: int - valore: 10 - dimensione in byte: 4 ( usare sizeof(tipo) ) - indirizzo: 104

Dettagli

Introduzione al C. Lez. 2 Funzioni e Puntatori

Introduzione al C. Lez. 2 Funzioni e Puntatori Introduzione al C Lez 2 Funzioni e Puntatori Esercizio 1: test primalità Scrivere un programma che prenda in input un intero n, e stampa SI se n è primo, NO altrimenti (NB: un intero n è primo se e solo

Dettagli

Corso di Informatica A.A

Corso di Informatica A.A Corso di Informatica A.A. 2009-2010 Lezione 10 Lezione 10 1 Inside C : Puntatori Puntatori Referenziazione e Dereferenziazione Pointers: Puntatori Le variabili finora incontrate sono caratterizzate da

Dettagli

Puntatori e array. Violetta Lonati

Puntatori e array. Violetta Lonati Puntatori e array Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati Puntatori e array

Dettagli

Array k-dimensionali

Array k-dimensionali Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Array k-dimensionali In C è possibile definire array con più dimensioni (ANSI C massimo k=12), per

Dettagli

Puntatori in C Lucidi della Pof.ssa Pazienza

Puntatori in C Lucidi della Pof.ssa Pazienza Puntatori in C Lucidi della Pof.ssa Pazienza http://www.uniroma2.it/didattica/foi2/ Puntatori L operatore di indirizzo & Indirizzi, puntatori Aritmetica dei puntatori L operatore di dereferenziazione *

Dettagli

Costanti e Variabili

Costanti e Variabili Parte 3 Costanti e Variabili Identificatori Un identificatore è un nome che viene associato a diverse entità (costanti, tipi, variabili, funzioni, ecc.) e serve ad identificare la particolare entità Gli

Dettagli

Unità Didattica 4 Linguaggio C. Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo.

Unità Didattica 4 Linguaggio C. Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo. Unità Didattica 4 Linguaggio C Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo. 1 Vettori Struttura astratta: Insieme di elementi dello stesso tipo, ciascuno individuato da un indice;

Dettagli

Prof. G. Ascia. I puntatori. Fondamenti di Informatica

Prof. G. Ascia. I puntatori. Fondamenti di Informatica I puntatori 1 Associazione Variabile-Indirizzo Tutte le volte che in un programma si dichiarano delle variabili, l'esecutore associa alla variabile un indirizzo. Es. Dato il programma #include

Dettagli

Dispensa di Informatica II.6

Dispensa di Informatica II.6 STRUTTURE La dispensa di seguito proposta si pone come tutorial per poter porre le basi per la creazione di strutture e la loro gestione dinamica nel linguaggio C / C ++ La struttura ( struct ) Le strutture

Dettagli

Puntatori. Fondamenti di Programmazione

Puntatori. Fondamenti di Programmazione Puntatori Fondamenti di Programmazione Funzioni utili stdio.h c = getchar(); restituisce un carattere letto da tastiera. Equivale a: scanf( %c, &c); putchar(c); scrive un carattere sullo schermo. Equivale

Dettagli

Informatica. Appunti della lezione 9

Informatica. Appunti della lezione 9 Informatica Appunti della lezione 9 Quadrati magici Sono matrici quadrate di interi tali che la somma di ciascuna riga e di ciascuna colonna è sempre la stessa 1 2 3 2 3 3 1 1 2 Quadrati magici Se tutte

Dettagli

Array e puntatori. Indice. Tipi di dati strutturati: Array Puntatori Tipi di dati strutturati: Array Esempio. Corso di Informatica A.

Array e puntatori. Indice. Tipi di dati strutturati: Array Puntatori Tipi di dati strutturati: Array Esempio. Corso di Informatica A. Array e puntatori Corso di Informatica A Vito Perrone 1 Indice Tipi di dati strutturati: Array Puntatori Tipi di dati strutturati: Array Esempio 2 I tipi strutturati: 1. Il costruttore array Definizione

Dettagli

Il linguaggio C. Puntatori e dintorni

Il linguaggio C. Puntatori e dintorni Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;

Dettagli

Quando è necessario elaborare una certa quantità di dati omogenei si possono usare variabili indicizzate: int a0, a1, a2;

Quando è necessario elaborare una certa quantità di dati omogenei si possono usare variabili indicizzate: int a0, a1, a2; Array Quando è necessario elaborare una certa quantità di dati omogenei si possono usare variabili indicizzate: int a0, a1, a2; Il C supporta questo uso attraverso il tipo di dati array (o vettore): int

Dettagli

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Puntatori. Marco D. Santambrogio Ver. aggiornata al 20 Aprile 2016

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Puntatori. Marco D. Santambrogio Ver. aggiornata al 20 Aprile 2016 Puntatori Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 20 Aprile 2016 Come rappresento un pixel? Il pixel è Il colore Come ottengo il verde? Con il formato RGB R: 91 G: 191 B:

Dettagli

Fondamenti di Informatica T-1

Fondamenti di Informatica T-1 Fondamenti di Informatica T-1 Input/Output e Interi Tutor: Angelo Feraudo angelo.feraudo2@unibo.it a.a. 2018/2019 Fondamenti di Informatica T-1 Angelo Feraudo 1 / 19 TUTOR Angelo Feraudo Email: angelo.feraudo2@unibo.it

Dettagli

Puntatori : idea di base

Puntatori : idea di base Puntatori 2 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo dell'area di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50; /* una var intera */ Puntatori

Dettagli

Associazione Variabile-Indirizzo

Associazione Variabile-Indirizzo I puntatori Associazione Variabile-Indirizzo Tutte le volte che in un programma si dichiarano delle variabili, l'esecutore associa alla variabile un indirizzo. Es. Dato il programma #include

Dettagli

i Vettori Alessandra Giordani Lunedì 15 aprile

i Vettori Alessandra Giordani Lunedì 15 aprile i Vettori Alessandra Giordani agiordani@disi.unitn.it Lunedì 15 aprile 2013 http://disi.unitn.it/~agiordani/ Dichiarazione di un Array La dichiarazione di un array di n elementi di tipo T causa l'allocazione

Dettagli

Introduzione al C. Lez. 2. Funzioni e Puntatori

Introduzione al C. Lez. 2. Funzioni e Puntatori Introduzione al C Lez 2 Funzioni e Puntatori Esercizio 1: test primalità Scrivere un programma che prenda in input un intero n, e stampa SI se n è primo, NO altrimenti (NB: un intero n è primo se è solo

Dettagli

Un puntatore è una variabile che contiene l indirizzo di una variabile. Una variabile di tipo puntatore è dichiarata tramite il costruttore di tipo *

Un puntatore è una variabile che contiene l indirizzo di una variabile. Una variabile di tipo puntatore è dichiarata tramite il costruttore di tipo * PUNTATORI Un untatore è una variabile che contiene l indirizzo di una variabile var. di tio "untatore a variabile di tio T" indir. di variab. variabile di tio T valore di tio T Una variabile di tio untatore

Dettagli

Programmazione C. Puntatori Array come puntatori

Programmazione C. Puntatori Array come puntatori Programmazione C Puntatori Array come puntatori Perché usare gli indirizzi Tutto in C ha un valore int a = 4; significa che il valore della variabile a è 4, e che potrà essere modificato dal programma

Dettagli

Lezione 12: Allocazione Dinamica della Memoria

Lezione 12: Allocazione Dinamica della Memoria Lezione 12: Allocazione Dinamica della Memoria Laboratorio di Elementi di Architettura e Sistemi Operativi 17 Aprile 2013 Puntatori e vettori Puntatori ed indirizzi Semplificando, la memoria di un computer

Dettagli

Aritmetica dei puntatori

Aritmetica dei puntatori Aritmetica dei puntatori Sui puntatori si possono anche effettuare operazioni aritmetiche, con opportune limitazioni somma o sottrazione di un intero sottrazione di un puntatore da un altro Somma e sottrazione

Dettagli

Inside C : Puntatori. Indirizzo: operatore & p = &v; x = a; Puntatori Referenziazione e Dereferenziazione Arrays

Inside C : Puntatori. Indirizzo: operatore & p = &v; x = a; Puntatori Referenziazione e Dereferenziazione Arrays Pointers: Puntatori (I) Le variabili finora incontrate sono caratterizzate da un nome (o identificativo), un tipo, ed occupano un area di memoria di dimensione dipendente dal tipo. Per accedere ad una

Dettagli

Informatica ed Elementi di Informatica Medica

Informatica ed Elementi di Informatica Medica Titolo presentazione sottotitolo Informatica ed Elementi di Informatica Medica A.A. 2018-19 Milano, XX mese 20XX Laboratorio n 4 Ing. Gian Enrico Conti Info Logistiche Contatti: gianenrico.conti@mail.polimi.it

Dettagli

Lezione 8: I Puntatori

Lezione 8: I Puntatori Lezione 8: I Puntatori Laboratorio di Elementi di Architettura e Sistemi Operativi 2 Maggio 2012 Esercizi della lezione scorsa Esercizio 3: la calcolatrice 1. Realizzare un insieme di funzioni per gestire

Dettagli

Le Funzioni in C. Fondamenti di Informatica Anno Accademico 2010/2011. Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia

Le Funzioni in C. Fondamenti di Informatica Anno Accademico 2010/2011. Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Le Funzioni in C Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2010/2011 docente: prof. Michele Salvemini 1/24 Sommario Le funzioni Il

Dettagli

Linguaggio C: Array Valeria Cardellini

Linguaggio C: Array Valeria Cardellini Linguaggio C: Array Valeria Cardellini Corso di Calcolatori Elettronici A.A. 2018/19 Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica Array in C q Dichiarazione

Dettagli

Laboratorio di algoritmi e strutture dati

Laboratorio di algoritmi e strutture dati Laboratorio di algoritmi e strutture dati Docente: Violetta Lonati 1 Esercizi su array frastagliati 1.1 Indice della arola iù iccola Scrivete una funzione con rototio int smallest_word_index( char *s[],

Dettagli

Scrivere un funzione ricorsiva che stampa a video i valori di una lista di elementi con campo info di tipo intero.

Scrivere un funzione ricorsiva che stampa a video i valori di una lista di elementi con campo info di tipo intero. Esercizio 1 Fondamenti di Informatica - Esercitazione n.13 1 Scrivere un funzione ricorsiva che stama a video i valori di una lista di elementi con camo info di tio intero. stama(elem* ); 1 chiamata stama(=);

Dettagli

Linguaggio C. Vettori, Puntatori e Funzioni Stringhe. Università degli Studi di Brescia. Prof. Massimiliano Giacomin

Linguaggio C. Vettori, Puntatori e Funzioni Stringhe. Università degli Studi di Brescia. Prof. Massimiliano Giacomin Linguaggio C Vettori, Puntatori e Funzioni Stringhe Università degli Studi di Brescia Prof. Massimiliano Giacomin SCHEMA DELLA LEZIONE RELAZIONE TRA VETTORI E PUNTATORI (e le stringhe letterali come caso

Dettagli

Dati due punti sul piano calcolare la loro distanza

Dati due punti sul piano calcolare la loro distanza Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12

Dettagli

Puntatori in C. Puntatori. Variabili tradizionali Esempio: int a = 5; Proprietà della variabile a: nome: a

Puntatori in C. Puntatori. Variabili tradizionali Esempio: int a = 5; Proprietà della variabile a: nome: a Puntatori in C Puntatori Variabili tradizionali indirizzo int a = 5; A00E... Proprietà della variabile a: nome: a A010 A012 5 tipo: int A014 valore: 5 indirizzo: A010 Finora abbiamo usato solo le prime

Dettagli

Gestione dinamica della memoria

Gestione dinamica della memoria Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 Gestione dinamica della memoria Pietro Di Lena - pietro.dilena@unibo.it A pessimistic programmer sees the array as half empty.

Dettagli

Il linguaggio C Puntatori

Il linguaggio C Puntatori Il linguaggio C Puntatori Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Linguaggio C - puntatori 2 Ringraziamenti Questi

Dettagli

Livello 1. Livello 2 Livello 3 TIPI, OPERATORI ED ESPRESSIONI. Le variabili puntatore ROADMAP RICHIAMI SULL ORGANIZZAZIONE DELLA MEMORIA

Livello 1. Livello 2 Livello 3 TIPI, OPERATORI ED ESPRESSIONI. Le variabili puntatore ROADMAP RICHIAMI SULL ORGANIZZAZIONE DELLA MEMORIA ROADMAP Funzioni e struttura di un rogramma Tii, oeratori, esressioni Strutture di controllo Inut/Outut Strutture dati TIPI, OPERATORI ED ESPRESSIONI Livello 1 Le variabili untatore Livello 2 Livello 3

Dettagli

! Per quanto sappiamo finora, in C le variabili sono sempre definite staticamente

! Per quanto sappiamo finora, in C le variabili sono sempre definite staticamente ! Per quanto sappiamo finora, in C le variabili sono sempre definite staticamente!!la loro esistenza deve essere prevista e dichiarata a priori! Questo può rappresentare un problema soprattutto per variabili

Dettagli

Array. Parte 7. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Array. Parte 7. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm

Dettagli

Funzioni in C. Funzioni. Strategie di programmazione. Funzioni in C. Come riusare il codice? (2/3) Come riusare il codice? (1/3)

Funzioni in C. Funzioni. Strategie di programmazione. Funzioni in C. Come riusare il codice? (2/3) Come riusare il codice? (1/3) Funzioni Il concetto di funzione Parametri formali e attuali Il valore di ritorno Definizione e chiamata di funzioni Passaggio dei parametri Corpo della funzione 2 Strategie di programmazione Riuso di

Dettagli

Indirizzi e tipi puntatore a

Indirizzi e tipi puntatore a Linguaggio C Indirizzi e tipi puntatore a Università degli Studi di Brescia Prof. Massimiliano Giacomin Indirizzo e tipo puntatore a TIPO Indirizzo NOME Valore Indirizzo 0101011110011001 1101011110011111

Dettagli

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione Lezione VI Tatiana Zolo zolo@cs.unipr.it 1 Dichiarazione (forma generale): LE STRUCT struct nome_struttura { tipo var1; tipo var2;... tipo vark; } variabili_struttura; (soltanto

Dettagli

Tipi di dato STRUTTURATI

Tipi di dato STRUTTURATI Tipi di dato STRUTTURATI I tipi di dato si differenziano in scalari e strutturati In C si possono definire tipi strutturati: array e strutture [ ] (array) Un array è una collezione finita di N variabili

Dettagli

Caratteri e stringhe

Caratteri e stringhe Caratteri e stringhe Caratteri Dato che un computer può memorizzare esclusivamente sequenze di bit, per memorizzare un carattere (e quindi testi) è necessario stabilire una convenzione che associa a un

Dettagli

I puntatori. DD Cap.7 pp KP Cap.6 pp

I puntatori. DD Cap.7 pp KP Cap.6 pp I puntatori DD Cap.7 pp.245-280 KP Cap.6 pp.219-235 Cos è un puntatore Un puntatore è una variabile che assume come valore un indirizzo di memoria. Il nome di una variabile fa quindi riferimento ad un

Dettagli

Esercitazioni di Fondamenti di Informatica - Lez. 7 20/11/2018

Esercitazioni di Fondamenti di Informatica - Lez. 7 20/11/2018 Esercitazioni di Fondamenti di Informatica - Lez. 7 0/11/018 Esercizi sull allocazione dinamica della memoria in C 1. Cosa stampa il seguente programma? 1 #d e f i n e MAXLENGTH 0 4 typedef struct { char

Dettagli

Strategie di programmazione

Strategie di programmazione Funzioni Funzioni in C Il concetto di funzione Parametri formali e attuali Il valore di ritorno Definizione e chiamata di funzioni Passaggio dei parametri Corpo della funzione 2 Funzioni in C Strategie

Dettagli

Dati aggregati. Violetta Lonati

Dati aggregati. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica - in breve: Definizione di tipi Array Stringhe Strutture

Dettagli

Introduzione al linguaggio C Dati aggregati

Introduzione al linguaggio C Dati aggregati Introduzione al linguaggio C Dati aggregati Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 5 ottobre

Dettagli

Corso di Laboratorio di Sistemi Operativi A.A

Corso di Laboratorio di Sistemi Operativi A.A Corso di Laboratorio di Sistemi Operativi A.A. 2016 2017 Lezione 9 Ivan Scagnetto ivan.scagnetto@uniud.it Nicola Gigante gigante.nicola@spes.uniud.it Dipartimento di Scienze Matematiche, Informatiche e

Dettagli

puntatori Lab. Calc. AA 2006/07 1

puntatori Lab. Calc. AA 2006/07 1 puntatori Lab. Calc. AA 2006/07 1 Attributi di un oggetto nome o identificatore; tipo; valore (o valori); indirizzo; Lab. Calc. AA 2006/07 2 Indirizzo Consideriamo la dichiarazione con inizializzazione:

Dettagli

Variabili e Funzioni. Informatica 1 / 19

Variabili e Funzioni. Informatica 1 / 19 Variabili e Funzioni Informatica 1 / 19 Programmi C e Un programma C e composto da funzioni e variabili Variabile: memorizza valori appartenenti ad un insieme di definizione (dipendente dal tipo) Funzione:

Dettagli

RICORSIONE, PUNTATORI E ARRAY. Quarto Laboratorio

RICORSIONE, PUNTATORI E ARRAY. Quarto Laboratorio RICORSIONE, PUNTATORI E ARRAY Quarto Laboratorio 16 DICEMBRE 2011 SCADENZA TERZA ESERCITAZIONE FUNZIONI RICORSIVE ESERCIZIO Scrivere una funzione ricorsiva che, assegnati due interi N1 ed N2, restituisca

Dettagli

Linguaggio C Vettori e stringhe

Linguaggio C Vettori e stringhe FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Vettori e stringhe 2001 Pier Luca Montessoro - Davide Pierattoni

Dettagli

Parte 3. Puntatori. [S. Dalí The temptation of St. Anthony, 1946] - AA. 2015/16 3.1

Parte 3. Puntatori. [S. Dalí The temptation of St. Anthony, 1946] - AA. 2015/16 3.1 Parte 3 Puntatori [S. Dalí The temptation of St. Anthony, 1946] 3.1 3.2 Puntatori Approfondimento rispetto alla trattazione vista nel corso precedente Finora come avete utilizzato i puntatori? Principalmente

Dettagli

Strutture dati concatenate

Strutture dati concatenate Strutture dati concatenate Strutture dati concatenate Le strutture concatenate sono utilizzate er la creazione e la gestione flessibile di variabili dinamiche Una struttura concatenata contiene almeno

Dettagli

Array. Aggragati di variabili omogenee...

Array. Aggragati di variabili omogenee... Array Aggragati di variabili omogenee... Cosa è un array È un insieme di variabili omogenee identificato da un indice, ad esempio Se devo leggere 1 numeri dallo standard input e memorizzarli all'interno

Dettagli

Strutture. Array dei nomi degli esami (MAX ESAMI è il massimo numero degli esami). Array con i crediti degli esami.

Strutture. Array dei nomi degli esami (MAX ESAMI è il massimo numero degli esami). Array con i crediti degli esami. Consideriamo l esercizio assegnato la scorsa lezione per rappresentare il libretto di uno studente. Per memorizzare i dati si sono utilizzati tre array: char* nomiesami[max ESAMI] Array dei nomi degli

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione

Dettagli

Gli array Libro cap. 6 Moreno Marzol a Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna

Gli array Libro cap. 6 Moreno Marzol a Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna Gli array Libro cap. 6 Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Array 2 Ringraziamenti prof. Stefano Mizzaro, Università

Dettagli

Allocazione dinamica della memoria

Allocazione dinamica della memoria Allocazione dinamica della memoria Allocazione statica: limiti Per quanto sappiamo finora, in C le variabili sono sempre dichiarate staticamente la loro esistenza deve essere prevista e dichiarata a priori

Dettagli

I/O da tastiera + Alessandra Giordani Lunedì 2 maggio

I/O da tastiera + Alessandra Giordani Lunedì 2 maggio I/O da tastiera + costrutti while e if Alessandra Giordani agiordani@disi.unitn.it Lunedì 2 maggio 2011 http://disi.unitn.it/~agiordani/ Ripasso funzione printf() Usata per stampare il contenuto di una

Dettagli

Corso Programmazione

Corso Programmazione Corso Programmazione 2011-2012 (docente) Fabio Aiolli E-mail: aiolli@math.unipd.it Web: www.math.unipd.it/~aiolli Dipartimento di Matematica Pura ed Applicata Torre Archimede, Via Trieste 63 Puntatori,

Dettagli

Il linguaggio C. Puntatori e Array

Il linguaggio C. Puntatori e Array Il linguaggio C Puntatori e Array Puntatori I puntatori sono variabili i cui valori sono indirizzi di locazioni in cui sono memorizzate altre variabili architettura a 32 bit: 232-1 indirizzi, ma non si

Dettagli