SlideShare a Scribd company logo
Scambio di variabili con puntatori
in C e C++
Autore: Riccardo Monterisi
http://ricccardomonterisi.tk
Scambio tra due variabili
Lo scambio tra due variabili è un algoritmo
molto usato nella programmazione.
Funziona così:
• pongo nelle due variabili i rispettivi valori;
• creo una variabile d’appoggio;
• assegno alla variabile d’appoggio il valore della
prima variabile;
(continua)
Scambio tra due variabili(2)
• assegno alla prima variabile il valore della
seconda variabile;
• assegno alla seconda variabile il valore
contenuto nella variabile d’appoggio.
Esempio di codice in C
Output
Screenshot del programma in esecuzione.
I puntatori
In C (e di conseguenza in C++) il puntatore è una
variabile particolare che conserva l’indirizzo di
memoria in cui è salvata un’altra variabile.
È una sorta di collegamento e deve essere dello
stesso tipo della variabile a cui deve “puntare”.
I puntatori(2)
La sintassi usata per i puntatori è uguale sia in C
che in C++.
int a; // variabile
int *p; // puntatore per una variabile di tipo intero
p = &a; //assegnazione dell’indirizzo di a al puntatore
*p // così di ottiene il valore di a
Scambio di variabili con puntatori
Scambio di variabili con puntatori(2)
Vediamo il codice per pezzo.
Nella sezione sottostante notiamo dichiarazione di variabili e
puntatori.
È da notare l’asterisco davanti a ciascun puntatore e che sono
di tipo int come le variabili.
Scambio di variabili con puntatori(3)
Nella sezione sottostante c’è l’assegnamento, per ciascun
puntatore, dell’indirizzo di ogni variabile.
È da notare il simbolo & che in pratica permette di ottenere
l’indirizzo della variabile.
Scambio di variabili con puntatori(4)
Nella sezione sottostante c’è lo scambio vero e proprio.
È da notare il simbolo * che permette di modificare o leggere il
valore della variabile partendo dal puntatore.
Scambio di variabili con puntatori(5)
Infine c’è la stampa delle variabili eseguita due volte per far
notare l’equivalenza dell’uso delle variabili oppure dei
rispettivi puntatori preceduti da *.
Output
Concludiamo con la schermata del programma in
esecuzione.

More Related Content

What's hot

Clean Code
Clean CodeClean Code
Clean Code
ISchwarz23
 
Qeverisja korporative amazon
Qeverisja korporative amazonQeverisja korporative amazon
Qeverisja korporative amazon
shar bakalli
 
Ruby Basics
Ruby BasicsRuby Basics
Ruby Basics
SHC
 
Kotlin/Native 「使ってみた」の一歩先へ
Kotlin/Native 「使ってみた」の一歩先へKotlin/Native 「使ってみた」の一歩先へ
Kotlin/Native 「使ってみた」の一歩先へ
Takaki Hoshikawa
 
Clean code
Clean codeClean code
Clean code
Arturo Herrero
 
SFScon22 - Anjan Karmakar -The Rise of AI Programmers.pdf
SFScon22 - Anjan Karmakar -The Rise of AI Programmers.pdfSFScon22 - Anjan Karmakar -The Rise of AI Programmers.pdf
SFScon22 - Anjan Karmakar -The Rise of AI Programmers.pdf
South Tyrol Free Software Conference
 
C# Async Await
C# Async AwaitC# Async Await
C# Async Await
Simplilearn
 
eServices-Tp5: api management
eServices-Tp5: api managementeServices-Tp5: api management
eServices-Tp5: api management
Lilia Sfaxi
 
O/R Mapping の話をするよ。ActiveRecord の話をしたかった。
O/R Mapping の話をするよ。ActiveRecord の話をしたかった。O/R Mapping の話をするよ。ActiveRecord の話をしたかった。
O/R Mapping の話をするよ。ActiveRecord の話をしたかった。
Tomohiko Himura
 

What's hot (9)

Clean Code
Clean CodeClean Code
Clean Code
 
Qeverisja korporative amazon
Qeverisja korporative amazonQeverisja korporative amazon
Qeverisja korporative amazon
 
Ruby Basics
Ruby BasicsRuby Basics
Ruby Basics
 
Kotlin/Native 「使ってみた」の一歩先へ
Kotlin/Native 「使ってみた」の一歩先へKotlin/Native 「使ってみた」の一歩先へ
Kotlin/Native 「使ってみた」の一歩先へ
 
Clean code
Clean codeClean code
Clean code
 
SFScon22 - Anjan Karmakar -The Rise of AI Programmers.pdf
SFScon22 - Anjan Karmakar -The Rise of AI Programmers.pdfSFScon22 - Anjan Karmakar -The Rise of AI Programmers.pdf
SFScon22 - Anjan Karmakar -The Rise of AI Programmers.pdf
 
C# Async Await
C# Async AwaitC# Async Await
C# Async Await
 
eServices-Tp5: api management
eServices-Tp5: api managementeServices-Tp5: api management
eServices-Tp5: api management
 
O/R Mapping の話をするよ。ActiveRecord の話をしたかった。
O/R Mapping の話をするよ。ActiveRecord の話をしたかった。O/R Mapping の話をするよ。ActiveRecord の話をしたかった。
O/R Mapping の話をするよ。ActiveRecord の話をしたかった。
 

Similar to Scambio di variabili con puntatori

Scambio di variabili con le reference
Scambio di variabili con le referenceScambio di variabili con le reference
Scambio di variabili con le reference
Riccardo Monterisi
 
13 Puntatori E Memoria Dinamica
13   Puntatori E Memoria Dinamica13   Puntatori E Memoria Dinamica
13 Puntatori E Memoria Dinamicaguest60e9511
 
Lezione 21 (2 maggio 2012)
Lezione 21 (2 maggio 2012)Lezione 21 (2 maggio 2012)
Lezione 21 (2 maggio 2012)STELITANO
 
Puntatori e Riferimenti
Puntatori e RiferimentiPuntatori e Riferimenti
Puntatori e Riferimenti
Ilio Catallo
 
Laboratorio Programmazione: Overflow e switch
Laboratorio Programmazione: Overflow e switchLaboratorio Programmazione: Overflow e switch
Laboratorio Programmazione: Overflow e switchMajong DevJfu
 
La scomposizione in sotto programmi in C++.pptx
La scomposizione in sotto programmi in C++.pptxLa scomposizione in sotto programmi in C++.pptx
La scomposizione in sotto programmi in C++.pptx
I.S.I.S. "Antonio Serra" - Napoli
 
Puntatori in C++
Puntatori in C++Puntatori in C++
Puntatori in C++
marckmart
 
Programmazione Top Down in C++
Programmazione Top Down in C++Programmazione Top Down in C++
Programmazione Top Down in C++
I.S.I.S. "Antonio Serra" - Napoli
 
Conversione diretta ed inversa tra automi a stati non definiti (nfa) ed espre...
Conversione diretta ed inversa tra automi a stati non definiti (nfa) ed espre...Conversione diretta ed inversa tra automi a stati non definiti (nfa) ed espre...
Conversione diretta ed inversa tra automi a stati non definiti (nfa) ed espre...Paolo Oltramonti
 
Corso c++
Corso c++Corso c++
Corso c++
Antonio Furone
 
Lezione 6 (12 marzo 2012)
Lezione 6 (12 marzo 2012)Lezione 6 (12 marzo 2012)
Lezione 6 (12 marzo 2012)STELITANO
 
Ripasso funzioni
Ripasso funzioniRipasso funzioni
Ripasso funzioni
marckmart
 
Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)STELITANO
 
Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)STELITANO
 
La metodologia Top - Down - applicazione al C++
La metodologia Top - Down - applicazione al C++La metodologia Top - Down - applicazione al C++
La metodologia Top - Down - applicazione al C++
I.S.I.S. "Antonio Serra" - Napoli
 
Esercitazione 1 (27 febbraio 2012)
Esercitazione 1 (27 febbraio 2012)Esercitazione 1 (27 febbraio 2012)
Esercitazione 1 (27 febbraio 2012)STELITANO
 
Conversione diretta ed inversa tra automi a stati non definiti (nfa) ed espre...
Conversione diretta ed inversa tra automi a stati non definiti (nfa) ed espre...Conversione diretta ed inversa tra automi a stati non definiti (nfa) ed espre...
Conversione diretta ed inversa tra automi a stati non definiti (nfa) ed espre...Paolo Oltramonti
 
08 - Programmazione: Passaggio valori tra funzioni per riferimenti
08 - Programmazione: Passaggio valori tra funzioni per riferimenti08 - Programmazione: Passaggio valori tra funzioni per riferimenti
08 - Programmazione: Passaggio valori tra funzioni per riferimentiMajong DevJfu
 
Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)STELITANO
 

Similar to Scambio di variabili con puntatori (20)

Scambio di variabili con le reference
Scambio di variabili con le referenceScambio di variabili con le reference
Scambio di variabili con le reference
 
13 Puntatori E Memoria Dinamica
13   Puntatori E Memoria Dinamica13   Puntatori E Memoria Dinamica
13 Puntatori E Memoria Dinamica
 
Lezione 21 (2 maggio 2012)
Lezione 21 (2 maggio 2012)Lezione 21 (2 maggio 2012)
Lezione 21 (2 maggio 2012)
 
3 Linguaggioc
3   Linguaggioc3   Linguaggioc
3 Linguaggioc
 
Puntatori e Riferimenti
Puntatori e RiferimentiPuntatori e Riferimenti
Puntatori e Riferimenti
 
Laboratorio Programmazione: Overflow e switch
Laboratorio Programmazione: Overflow e switchLaboratorio Programmazione: Overflow e switch
Laboratorio Programmazione: Overflow e switch
 
La scomposizione in sotto programmi in C++.pptx
La scomposizione in sotto programmi in C++.pptxLa scomposizione in sotto programmi in C++.pptx
La scomposizione in sotto programmi in C++.pptx
 
Puntatori in C++
Puntatori in C++Puntatori in C++
Puntatori in C++
 
Programmazione Top Down in C++
Programmazione Top Down in C++Programmazione Top Down in C++
Programmazione Top Down in C++
 
Conversione diretta ed inversa tra automi a stati non definiti (nfa) ed espre...
Conversione diretta ed inversa tra automi a stati non definiti (nfa) ed espre...Conversione diretta ed inversa tra automi a stati non definiti (nfa) ed espre...
Conversione diretta ed inversa tra automi a stati non definiti (nfa) ed espre...
 
Corso c++
Corso c++Corso c++
Corso c++
 
Lezione 6 (12 marzo 2012)
Lezione 6 (12 marzo 2012)Lezione 6 (12 marzo 2012)
Lezione 6 (12 marzo 2012)
 
Ripasso funzioni
Ripasso funzioniRipasso funzioni
Ripasso funzioni
 
Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)
 
Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)
 
La metodologia Top - Down - applicazione al C++
La metodologia Top - Down - applicazione al C++La metodologia Top - Down - applicazione al C++
La metodologia Top - Down - applicazione al C++
 
Esercitazione 1 (27 febbraio 2012)
Esercitazione 1 (27 febbraio 2012)Esercitazione 1 (27 febbraio 2012)
Esercitazione 1 (27 febbraio 2012)
 
Conversione diretta ed inversa tra automi a stati non definiti (nfa) ed espre...
Conversione diretta ed inversa tra automi a stati non definiti (nfa) ed espre...Conversione diretta ed inversa tra automi a stati non definiti (nfa) ed espre...
Conversione diretta ed inversa tra automi a stati non definiti (nfa) ed espre...
 
08 - Programmazione: Passaggio valori tra funzioni per riferimenti
08 - Programmazione: Passaggio valori tra funzioni per riferimenti08 - Programmazione: Passaggio valori tra funzioni per riferimenti
08 - Programmazione: Passaggio valori tra funzioni per riferimenti
 
Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)
 

Scambio di variabili con puntatori

  • 1. Scambio di variabili con puntatori in C e C++ Autore: Riccardo Monterisi http://ricccardomonterisi.tk
  • 2. Scambio tra due variabili Lo scambio tra due variabili è un algoritmo molto usato nella programmazione. Funziona così: • pongo nelle due variabili i rispettivi valori; • creo una variabile d’appoggio; • assegno alla variabile d’appoggio il valore della prima variabile; (continua)
  • 3. Scambio tra due variabili(2) • assegno alla prima variabile il valore della seconda variabile; • assegno alla seconda variabile il valore contenuto nella variabile d’appoggio.
  • 6. I puntatori In C (e di conseguenza in C++) il puntatore è una variabile particolare che conserva l’indirizzo di memoria in cui è salvata un’altra variabile. È una sorta di collegamento e deve essere dello stesso tipo della variabile a cui deve “puntare”.
  • 7. I puntatori(2) La sintassi usata per i puntatori è uguale sia in C che in C++. int a; // variabile int *p; // puntatore per una variabile di tipo intero p = &a; //assegnazione dell’indirizzo di a al puntatore *p // così di ottiene il valore di a
  • 8. Scambio di variabili con puntatori
  • 9. Scambio di variabili con puntatori(2) Vediamo il codice per pezzo. Nella sezione sottostante notiamo dichiarazione di variabili e puntatori. È da notare l’asterisco davanti a ciascun puntatore e che sono di tipo int come le variabili.
  • 10. Scambio di variabili con puntatori(3) Nella sezione sottostante c’è l’assegnamento, per ciascun puntatore, dell’indirizzo di ogni variabile. È da notare il simbolo & che in pratica permette di ottenere l’indirizzo della variabile.
  • 11. Scambio di variabili con puntatori(4) Nella sezione sottostante c’è lo scambio vero e proprio. È da notare il simbolo * che permette di modificare o leggere il valore della variabile partendo dal puntatore.
  • 12. Scambio di variabili con puntatori(5) Infine c’è la stampa delle variabili eseguita due volte per far notare l’equivalenza dell’uso delle variabili oppure dei rispettivi puntatori preceduti da *.
  • 13. Output Concludiamo con la schermata del programma in esecuzione.