DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Puntatori. Marco D. Santambrogio Ver. aggiornata al 4 Aprile 2013
|
|
- Gianmaria Orlandi
- 4 anni fa
- Visualizzazioni
Transcript
1 Puntatori Marco D. Santambrogio Ver. aggiornata al 4 Aprile 201
2 WAT? WAT Lab Troppi exe, ne volevo di meno Vacanze W A Giovedì 28, Venerdì 29 e Lunedì 1 ma anche Martedì 2 e Mercoledì T DEIB Giovedì 4 Aprile dalle 5.0pm alle 7.0pm 2
3 Immagini Struttura dati: typedef struct{ int R; int G; int B; } pixel pixel img[0][24]; Ma quanto è grossa immagine? pixel=(int*) img= pixel*0*24 1 immagine= 2160 interi
4 Manipoliamo immagine Problema: mettiamo a 0, tutti i pixel con rosso minore di 50 (soglia) void TagliaRossi(pixel immagine[0][24], int soglia); Se volessimo scrivere una funzione che risolve il problema dato? Cosa ritorna? NB: una immagine è un insieme di pixel, non un solo dato! Quali sono i parametri di ingresso? 4
5 RICORDIAMO: passaggio per valore Ambiente della funzione somma d1, d2 risultato } /* nel main */ float valore1, valore2; float risultato; Quando invoco la funzione in d1 e d2 vengono copiati i valori di valore1 e valore 2 valore1, valore2 Quando la funzione termina il valore di risultato in somma viene copiato il risultato nel main risultato risultato=somma(valore1,valore2); Ambiente della funzione main 5
6 Quindi. void TagliaRossi(pixel immagine[0][24], int soglia); /* nel main */ pixel img[0][24]; int val_soglia; Ambiente della funzione TagliaRossi TagliaRossi(img[0][24], val_soglia); immagine[0][24] soglia Quando invoco la funzione in immagine[0][24] vengono copiati i valori di img[0][24] Perchè? Spreco di memoria: 2160 interi *2 array1=array2 : VIETATO in C img[0][24] val_soglia Ambiente della funzione main 6
7 Cosa ci piacerebbe? Avere una sola copia del dato Non vogliamo sprecare spazio Poter accedere a quella copia in maniera sicura Non vogliamo usare variabili globali! Sarebbe troppo alto il rischio di commettere errori! Invece che per copia, ci piacerebbe accedere tramite indirizzo 7
8 E quindi (veramente) Sapendo dove si trova il primo punto aka: indirizzo primo pixel img[0][0] pixel img[0][24]; Con le dimensione della matrice: Righe: 0 Colonne: 24 Possiamo arrivare ad ogni punto (r,c)!!! Indirizzo di img[0][0] + r*colonne + c &img[0][0] + r*colonne + c 8
9 Obiettivi Puntatori 9
10 Variabili e indirizzi int var; &var 2 var 1 0 Supponiamo che la dichiarazione riservi la zona di memoria all indirizzo 1 var indica il contenuto della cella di memoria &var indica l indirizzo della cella di memoria 10
11 11 Puntatori premessa Dichiarare una variabile significa riservare una zona di memoria composta da diverse celle Il numero di celle dipende dal tipo di dato Ogni cella di memoria ha un indirizzo fisico e: il nome della variabile indica il contenuto della cella di memoria l operatore & permette di ottenere l indirizzo di memoria della cella associata alla variabile cui l operatore è applicato
12 12 Puntatore È un tipo di dato che ammette tra i suoi valori un indirizzo di memoria La zona di memoria viene detta puntata dalla variabile puntatore La variabile puntatore viene detto che punta ad una cella di memoria Quando dichiaro un puntatore si deve anche specificare che tipo di dato viene ospitato nella cella puntata Sintassi: int *p;
13 1 Significato int *p; &p 2 1 p 0 p è una variabile come tutte le altre quindi p indica il contenuto della cella di memoria &p indica l indirizzo di memoria Quello che caratterizza una variabile di tipo puntatore è il fatto che il suo valore è esso stesso un indirizzo di memoria
14 14 Deferenziazione Ad una variabile di tipo puntatore posso applicare l operatore di deferenziazione * *p indica il contenuto della cella puntata da p Se p è un puntatore ad un intero allora *p è una semplice variabile intera int *p; *p=5; /* OK. *p è un intero */ p=5; /* errore. p è un puntatore */ Attenzione! Il simbolo * lo uso sia nella dichiarazione che nella deferenziazione
15 15 Operazioni A una variabile di tipo puntatore posso assegnare un indirizzo di memoria int x; int *p; &p &x x=5; p=&x; /* *p vale 5 */ p x p punterà alla zona di memoria in cui è memorizzato il valore di x Ad una variabile puntatore non viene mai assegnato una costante
16 Pointer Fun with Binky This is document 104 in the Stanford CS Education Library. Please see for this and other free educational materials. Copyright Nick Parlante
17 17 Passaggio per INDIRIZZO All atto della chiamata l indirizzo dei parametri attuali viene associato ai parametri formali il parametro attuale e il parametro formale si riferiscono alla stessa cella di memoria Il sottoprogramma in esecuzione lavora nel suo ambiente sui parametri formali (e di conseguenza anche sui parametri attuali) ogni modifica sul parametro formale è una modifica del corrispondente parametro attuale Gli effetti del sottoprogramma si manifestano nel chiamante con modifiche al suo ambiente locale di esecuzione
18 Passaggio parametri per indirizzo 18 Si utilizza: il costruttore di tipo puntatore per la definizione dei parametri formali della funzione float circonferenza(float *raggio) l operatore di dereferenziazione all interno della funzione circ = *raggio *.14; alla chiamata della funzione, si passa un indirizzo di variabile come parametro attuale c=circonferenza(&r); Attenzione! Gli array sono SEMPRE passati per indirizzo. Una variabile di tipo array, infatti, è per definizione un puntatore
19 19 Esempio: passaggio per indirizzo float circonferenza(float *raggio) { float circ; circ = *raggio *.14; *raggio = 7; /*istruzione senza senso, voglio solo vedere cosa succede modificando il valore di un paramentro formale*/ return circ; } /* nel main */ float c,r=5; Ambiente della funzione circonferenza raggio Quando invoco la funzione in raggio viene copiato l indirizzo di r. Quindi *raggio e r sono la stessa cosa circ Quando la funzione termina il valore di circ in circonferenza viene copiato in c nel main c=circonferenza(&r); /*attenzione! D ora in poi r vale 7 */ r c Ambiente della funzione main
20 20 Esempio: scambio di 2 valori interi void swap (int p, int q) { int temp; temp = p; p = q; q = temp; } a b 7 p q 7 temp Nel main: swap(a,b)
21 21 Esempio: scambio di 2 valori interi void swap (int p, int q) { int temp; temp = p; p = q; q = temp; } a b 7 p q 7 temp Nel main: swap(a,b)
22 22 Esempio: scambio di 2 valori interi void swap (int p, int q) { int temp; temp = p; p = q; q = temp; } a b 7 p 7 q 7 temp Nel main: swap(a,b)
23 2 Esempio: scambio di 2 valori interi void swap (int p, int q) { int temp; temp = p; p = q; q = temp; } a b 7 p 7 q temp Nel main: swap(a,b)
24 24 Esempio: scambio di 2 valori interi void swap (int p, int q) { } int temp; temp = p; p = q; q = temp; Al termine dell esecuzione di swap le variabili nel main restano inalterate! Nel main: swap(a,b) a b 7 p 7 q temp
25 25 Esempio: scambio di 2 valori interi void swap (int *p, int *q){ int temp; temp = *p; *p = *q; *q = temp; } a b 7 p q temp Nel main: swap(&a, &b)
26 26 Esempio: scambio di 2 valori interi void swap (int *p, int *q){ int temp; temp = *p; *p = *q; *q = temp; } a b 7 p q temp Nel main: swap(&a, &b)
27 27 Esempio: scambio di 2 valori interi void swap (int *p, int *q){ int temp; temp = *p; *p = *q; *q = temp; } a 7 b 7 p q temp Nel main: swap(&a, &b)
28 28 Esempio: scambio di 2 valori interi void swap (int *p, int *q){ int temp; temp = *p; *p = *q; *q = temp; } a 7 b p q temp Nel main: swap(&a, &b)
29 29 Esempio: scambio di 2 valori interi void swap (int *p, int *q){ } int temp; temp = *p; *p = *q; *q = temp; Al termine dell esecuzione di swap le variabili nel main vengono modificate a 7 Nel main: swap(&a, &b) b p q temp
30 scanf: stringhe Vs char 0
31 Parametri di tipo array Per usare in una funzione una variabile di tipo array occorre passare il suo indirizzo di base, perciò di fatto l array è passato per locazione (indirizzo) Una funzione C non restituirà un array (come contenuto), ma solo un puntatore a un array (cioè il suo nome come suo indirizzo)!! 1
32 Somma degli elementi di un array di int 2
33 Somma degli elementi di un array di int: funzioni
34 Somma degli elementi di un array di int: funzioni con int *valori 4
35 Parametri di tipo array Due testate equivalenti: double mul(double *a, int n) double mul(double a[], int n) N.B.: non c è la dimensione, e n è la porzione occupata dell'array Supponiamo di avere un array V[50]. Possibili chiamate: mul(v,50) restituisce V[0]*V[1]* V[49] mul(v,0) restituisce V[0]*V[1]* V[29] mul(&v[5],7) restituisce V[5]*V[6]* V[11] mul(v+5,7) restituisce V[5]*V[6]* V[11] 5
36 Fonti per lo studio + Credits Fonti per lo studio Binky Pointer Fun Video: Credits Gianluca Palermo 6
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
DettagliDIPARTIMENTO 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:
DettagliLinguaggio 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
DettagliLinguaggio C: le funzioni. Visibilità variabili e passaggio parametri
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: le funzioni. Visibilità variabili e passaggio parametri
DettagliScope delle variabili e passaggio parametri. Danilo Ardagna Politecnico di Milano
Scope delle variabili e passaggio parametri Danilo Ardagna Politecnico di Milano 1-4-2014 Introduzione! Con le funzioni è stato introdotto un meccanismo per definire dei piccoli programmi all interno di
DettagliLinguaggio C: PUNTATORI
Linguaggio C: PUNTATORI I puntatori sono una delle più importanti caratteristiche del linguaggio C. Permettono di lavorare a basso livello, mantenendo flessibilità e praticità. Il C utilizza molto i puntatori
DettagliOttenere una modifica del parametro attuale
Ottenere una modifica del parametro attuale Le variabili passate come parametri a una funzione, se alterate durante l esecuzione, non cambiano valore all uscita dalla funzione (parametri passati per valore)
DettagliIntroduzione 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
DettagliIntroduzione 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
DettagliIntroduzione 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 2016
DettagliParametri by reference. Funzioni. Passaggio dei parametri. Parametri by reference. Soluzione. Problemi
Funzioni Introduzione Operatori & e * Passaggio by reference Passaggio di vettori Esercizio strcpy 2 Passaggio dei parametri Il linguaggio C prevede il passaggio di parametri by value Il chiamato non può
DettagliPuntatori. 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
DettagliPuntatori. 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
DettagliC: 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
DettagliDIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Funzioni e Procedure. Marco D. Santambrogio Ver. aggiornata al 11 Marzo 2014
Funzioni e Procedure Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 11 Marzo 2014 Obiettivi Funzioni Scope delle variabili 2 La calcolatrice! Problema Si scriva un programma in C
DettagliIntroduzione 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 Violetta Lonati
DettagliUnità 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;
DettagliIl 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;
DettagliInformatica 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
DettagliPuntatori in C. Fondamenti di Informatica. Daniele Loiacono
Puntatori in C Fondamenti di Informatica Puntatori Come è fatta la memoria del calcolatore? Un modello concettuale della memoria q La memoria centrale di un calcolatore è una sequenza di celle numerate
DettagliStringhe e tipi di dati strutturati
Stringhe e tipi di dati strutturati Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 21 Marzo 2013 Info sui Labs http://tinyurl.com/ieimlabextra Ricordate di portare un adattatore!
DettagliLe funzioni: la dichiarazione
Funzioni I Parte Indice Le funzioni: dichiarazione, definizione e chiamata Le regole di visibilità (scope) Il passaggio degli argomenti per valore e riferimento La funzione main() Le funzioni: la dichiarazione
DettagliLe funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità
Funzioni I Parte Indice Le funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità Le funzioni: la dichiarazione
DettagliProf. 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
DettagliIndirizzi 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
DettagliDIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Array e stringhe. Marco D. Santambrogio Ver. aggiornata al 6 Aprile 2016
Array e stringhe Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 6 Aprile 2016 Logistica Laboratori 2 Logistica Laboratori @DrepssedDarth 3 Logistica Laboratori Lunedì (3.30pm 6pm)
DettagliArray n-dimensionali e tipi di dati strutturati
Array n-dimensionali e tipi di dati strutturati Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 8 Aprile 2016 Logistica Laboratori Lunedì (3.30pm 6pm) EG7 (No portatili e basta) L26.1.3
DettagliCorso di Programmazione I
Corso di Programmazione I I puntatori in C e C++ I puntatori in C Il C prevede puntatori a funzione e puntatori a dati di qualsiasi natura, semplici o strutturati. In particolare il puntatore viene utilizzato
DettagliStrutture, Unioni, Enumerazioni in C. Emilio Di Giacomo
Strutture, Unioni, Enumerazioni in C Emilio Di Giacomo Strutture Una struttura è una collezione di variabili raggruppate sotto uno stesso nome da questo punto di vista è simile a un array Le variabili
DettagliAssociazione 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
DettagliFondamenti di Informatica 12. Linguaggio C -4
Strutture Dati in C Le strutture dati sono entità che permettono di memorizzare dati in modo organizzato e funzionale a particolari esigenze Fondamenti di Informatica 12. Linguaggio C -4 Strutture Dati
DettagliDIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Funzioni e Procedure. Marco D. Santambrogio Ver. aggiornata al 21 Marzo 2014
Funzioni e Procedure Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 21 Marzo 2014 Info di servizio 1 Vi siete dimostrati volenterosi, quindi teniamo la divisione proposta da voi
DettagliPROGRAMMAZIONE AVANZATA JAVA E C
PROGRAMMAZIONE AVANZATA JAVA E C Massimiliano Redolfi Lezione 3: C puntatori, funzioni, array multidim Voglio realizzare una funzione che dato un array di interi ne restituisca la somma come fare? Prima
DettagliIl linguaggio C funzioni e puntatori
Salvatore Cuomo Il linguaggio C funzioni e puntatori Lezione n. 8 Parole chiave: Linguaggio C, procedure, funzioni. Corso di Laurea: Informatica Insegnamento: Programmazione II, modulo di Laboratorio Email
DettagliProgrammazione 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
DettagliIntroduzione 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
DettagliAritmetica dei puntatori
Aritmetica dei puntatori Marco Alberti Programmazione e Laboratorio, A.A. 2016-2017 Dipartimento di Matematica e Informatica - Università di Ferrara Ultima modifica: 7 dicembre 2016 sizeof L operatore
DettagliC++ funzioni Alberto Ferrari. Alberto Ferrari Programmazione di applicazioni SW
C++ funzioni Alberto Ferrari http://en.cppreference.com FUNZIONI le funzioni caratterizzate da nome, parametri (numero, ordine e tipo) e tipo di ritorno le funzioni hanno un prototipo il prototipo non
DettagliEsercizi. La funzione swapint() primo tentativo
Politecnico di Milano Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio di array. #include
DettagliPassaggio dei parametri
Passaggio dei parametri Per valore Il valore viene copiato dall environment esterno all environment della funzione o procedura Cambiamenti dei parametri così passati non si riflettono sull environment
DettagliArray. Unità 7. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER
Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico
DettagliTutorato Elementi di Informatica 2018
Università degli Studi di Cagliari Pattern Recognition & Application Lab Dipartimento di Ingegneria Elettrica ed Elettronica Tutorato Elementi di Informatica 2018 Esercitazione 2 Introduzione e Tipi di
DettagliFondamenti di Informatica
Strutture di dati Fondamenti di Informatica 11. Linguaggio C - Strutture / Tabelle / Puntatori Strutture /Tabelle Corso di Laurea in Ingegneria Informatica e dell Automazione A.A. 2012-2013 2 Semestre
DettagliCapitolo 10 - Strutture
1 Capitolo 10 - Strutture Strutture In molte situazioni, una variabile non è sufficiente per descrivere un oggetto. Ad esempio, una posizione sul piano cartesiano è identificata da due coordinate, e la
DettagliIntroduzione 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
DettagliPOINTERS. 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.
DettagliArray n-dimensionali e tipi di dati strutturati
Array n-dimensionali e tipi di dati strutturati Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 5 Novembre 2013 Info di servizio Demo 1mo compitino In LM5 @ 12pm - venerdì 8 Nov In
DettagliPuntatori : 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
DettagliNon 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
DettagliPuntatori. 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
Dettagliin alternativa Quanto spazio occupa in memoria una variabile di tipo struct? dipende...
Strutture Mentre un array consente di raggruppare, sotto un unico nome, vari elementi tutti dello stesso tipo, una struttura permette di gestire, mediante un unico nome, elementi di QUASI tutti i tipi.
DettagliIndirizzi 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
DettagliPassaggio dei parametri. Passaggio dei parametri
Per valore Il valore viene copiato dal mondo esterno all environment della funzione o procedura Cambiamenti dei parametri così passati non si riflettono sul mondo esterno rimangono circoscritti all environment
DettagliCorso di Informatica A.A
Corso di Informatica A.A. 2009-2010 Lezione 11 Corso di Informatica 2009-2010 Lezione 11 1 Utilizzo dei puntatori Funzioni Perche i Puntatori? I puntatori hanno tre importanti applicazioni: 1. Passaggio
DettagliVerso 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
DettagliIl passaggio parametri per indirizzo
Il passaggio parametri per indirizzo Cominciamo con un esempio: supponiamo di voler eseguire diversi inserimenti di nuove fatture in diversi archivi. Proviamo con questa modifica della procedura InserisciFattura:
DettagliLaboratorio di Informatica I
Struttura della lezione Lezione 6: Array e puntatori Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Una funzione per i numeri di Fibonacci
DettagliFondamenti di Informatica Ing. Biomedica
Fondamenti di Informatica Ing. Biomedica Esercitazione n.10 Strutture Antonio Arena antonio.arena@ing.unipi.it Ripresa esercizio per casa Fondamenti di Informatica - Esercitazione n.10 2 Scrivere una funzione
Dettagliparametri attuali ricopiati parametri formali
Passaggio per valore Al momento del richiamo della funzione il valore dei parametri attuali sono ricopiati nello spazio di memoria allocato ai parametri formali Passaggio per valore int x, y; x=5; y=f(x);
DettagliPassaggio dei parametri Per valore Il valore viene copiato dall environment esterno all environment della funzione o procedura Cambiamenti dei paramet
Per valore Il valore viene copiato dall environment esterno all environment della funzione o procedura Cambiamenti dei parametri così passati non si riflettono sull environment esterno Per riferimento
DettagliElementi di Informatica
Corso di Laurea triennale in Ingegneria Chimica in condivisione con Corso di Laurea triennale in Ingegneria Navale e Scienze dei Materiali Elementi di Informatica A.A. 2016/17 prof. Mario Barbareschi Puntatori
DettagliOgni 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
DettagliPuntatori (in C) Emilio Di Giacomo
Puntatori (in C) Emilio Di Giacomo Puntatori In questa lezione parleremo di uno dei costrutti più potenti del C: i puntatori I puntatori vengono utilizzati per realizzare il passaggio di parametri per
DettagliLezione 6: Array e puntatori
Lezione 6: Array e puntatori Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione Una funzione per i numeri di Fibonacci
DettagliLaboratorio 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
DettagliEsercitazione di Reti degli elaboratori
Esercitazione di Prof.ssa Chiara Petrioli Christian Cardia, Gabriele Saturni Cosa vedremo in questa lezione? Gli Array Gli array multidimensionali Le stringhe I puntatori Esercizi Pagina 1 Gli Array Definizione
DettagliLe funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità
Funzioni I Parte Indice Le funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità Le funzioni Tutti i linguaggi
Dettaglicout << "Inserisci un numero:" << endl; cin >> n; ris = n*2; cout << "Il doppio di " << n << " e " << ris << endl;
Funzioni int n, ris; cout n; ris = n*2; cout
DettagliARRAY 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
DettagliPuntatori 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
DettagliCorso 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
DettagliIl costruttore struct
Il costruttore struct Aggrega informazioni eterogenee Esempio variabili di tipo impiegato contenenti nome, cognome, codice fiscale, indirizzo, numero di telefono, stipendio, data di assunzione contenitori
DettagliIntroduzione 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
DettagliLinguaggio C - sezione dichiarativa: costanti e variabili
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - sezione dichiarativa: costanti e variabili La presente
DettagliLinguaggio C I puntatori
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C I puntatori 2001 Pier Luca Montessoro - Davide Pierattoni
DettagliDIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Recap sul C. Marco D. Santambrogio Ver. aggiornata al 11 Aprile 2013
Recap sul C Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 11 Aprile 2013 Feedback NUOVO, per le exe: http://tinyurl.com/ieimexe2013 Per i lab: http://tinyurl.com/feedback-labieim2013
DettagliLezione 8. Sottoprogrammi
Lezione 8 Il linguaggio C: Sottoprogrammi e Funzioni I puntatori Input/Output su file Sottoprogrammi Per risolvere un problema si può scomporlo in problemi più semplici e comporre le loro soluzioni in
DettagliLezione 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
DettagliPuntatore. 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
DettagliJAVA. import java.util.*; #include <stdio.h> public static class test { int variable; private int variable; int main (int argc, char *argv[]) {
JAVA C import javautil*; public static class test { private int variable; public void main (String[] args) { variable = 0; Systemoutprintln( Variable is: + variable); #include int variable; int
DettagliGli Array. Dichiarazione di un array
Gli Array Un array rappresenta una variabile indicizzata (ovvero contenente un indice) che viene utilizzata per contenere più elementi dello stesso tipo. Ogni array ha un nome al quale viene associato
DettagliMini-dispensa sui puntatori in C
Mini-dispensa sui puntatori in C P. Zavarise Versione 1 ottobre 013 1 Valore e indirizzo di una variabile Ripassiamo il significato di dal punto di vista del programmatore. int a=; Viene creata una variabile
DettagliFondamenti di Programmazione
A.A. 08/09 Fondamenti di Programmazione (canale E-O) Docente: Prof.ssa Tiziana Calamoneri calamo@di.uniroma1.it Esercitatore: Dott. Roberto Petroccia petroccia@di.uniroma1.it Pagina del corso: http://twiki.di.uniroma1.it/twiki/view/programmazione1/eo/webhome
DettagliPuntatori : 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
DettagliLe 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
DettagliINFORMATICA A. Titolo presentazione sottotitolo. Laboratorio n 4 Dott. Michele Zanella Ing. Gian Enrico Conti
INFORMATICA A Titolo presentazione sottotitolo A.A. 2018-19 Milano, XX mese 20XX Laboratorio n 4 Dott. Michele Zanella Ing. Gian Enrico Conti Puntatori I puntatori sono delle variabili che contengono l
DettagliArray 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
DettagliQualsiasi programma in C++ segue lo schema: Variabili
Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni
DettagliLe funzioni. Funzioni. Funzioni. Funzioni
Le funzioni Con il termine funzione si intende, in generale, un operatore che, applicato a un insieme di operandi, consente di calcolare un valore come risultato, come avviene anche per una funzione matematica
DettagliLaboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 19 14/04/2014
Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 19 14/04/2014 Puntatori I puntatori sono tipi di dati che rappresentano la posizione (indirizzi di memoria) di elementi (oggetti)
DettagliPUNTATORI. Introduzione. puntatore. L operatore
PUNTATORI Introduzione Dichiarazione ed inizializzazione delle variabili di tipo puntatore L operatore puntatore Chiamata di funzioni per indirizzo Espressioni ed aritmetica dei puntatori Puntatori ed
DettagliProgrammazione I - Laboratorio
Programmazione I - Laboratorio Esercitazione 4 - Puntatori, vettori e stringhe Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ mezzetti mezzetti
DettagliInformatica (A-K) 14. Linguaggio C -4
Strutture Dati in C Le strutture dati sono entità che permettono di memorizzare dati in modo organizzato e funzionale a particolari esigenze Informatica (A-K) 14. Linguaggio C -4 Strutture Dati tipiche
DettagliPuntatori 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 *
DettagliLaboratorio di Informatica
-- Conversione di tipo in C (V) -- Laboratorio di Informatica Ingegneria Meccanica Lezione 7, 22 novembre 2007 versione 24 novembre 2007 Renato Menicocci
Dettagli