-->
  • Home
    • WorldInformatic's history
  • Operative Systems
    • Mac
    • Windows
  • Some guide
  • Programming language
    • C
    • Java
    • HTML
  • Smartphone
    • Apple iOS
    • Android
  • Games
    • Smartphone Games
    • Web Games
    • PC e Console
  • News
    • Apple News
    • Android/Google News
  • Enjoy!
  • Contact us

C: corso completo

- Parte 01: Introduzione
- Parte 02: Fasi, variabili, operatori e software
- Parte 03: Tipi di dato, direttive e 1° programma
- Parte 04: Tipi di formato, printf e scanf
- Parte 05: Istruzioni condizionali e di iterazione
- Parte 06: Funzioni e progetti su più file
- Parte 07: Puntatori e passaggio dei parametri
- Parte 08: Array, stringhe e strutture
- Parte 09: Gestione file: file di testo
- Parte 10: Gestione file: file binari
- Parte 11: Allocazione dinamica della memoria
- Parte 12: Creare ed utilizzare le liste nel C
- Parte 13: Ordinamento di array e strutture
- Parte 14: Esercizi sul linguaggio C

C: corso completo

26 febbraio 2013

Immagine
In questa settima parte del corso completo di C tenuto su questo sito, vi voglio parlare di un argomento importantissimo del C: i puntatori (e il relativo passaggio dei parametri).


Il passaggio dei parametri nel C può avvenire in due modi diversi:
  • Per valore; in questo caso si passa una copia della nostra variabile: quindi se nella funzione questo valore viene modificato, ciò non incide minimamente sulla variabile originale passata;
  • Per riferimento; in questo caso si passa un riferimento a quella variabile, ossia il valore del suo indirizzo, e non una copia! Per cui se la funzione ne modifica il valore, ciò si ripercuote anche sulla variabile del programma principale.

Per valore

Immagine

In questo caso il valore di n è rimasto invariato, anche se nella funzione si è tentato di modificarne il valore; infatti la printf scrive che il valore di n è rimasto 4.

Per riferimento

Immagine
In questo caso invece il valore di n è cambiato e la printf scrive a video che il valore di n è adesso 10; perchè? Perché ho passato l'indirizzo di n, e non il suo valore!



Come avete visto, il metodo per passare una variabile per riferimento è quello di anteporre al suo nome il simbolo " & " (e commerciale): ora potete quindi capire anche perché nella scanf bisogna inserire il simbolo & davanti, ossia perchè bisogna modificarne il valore nella funzione, e quindi occorre che sia passato per riferimento.

Inoltre avete anche visto come si identifica un puntatore, ossia anteponendo al nome della variabile il simbolo " * "; nelle precedenti lezioni avevo detto che nel caso di array o altre strutture non era necessario anteporre il simbolo &, perché infatti passando un array si ha già un puntatore al suo primo elemento (ma di questo parleremo più avanti).

Infine devo dire che i puntatori si possono anche creare al momento della dichiarazione delle variabili (ad esempio nel main), scrivendo " int* num; "; in questo caso abbiamo creato un puntatore a intero ad esempio.


Se volete esercitarvi con degli esercizi, andate qui: Esercizi sui puntatori.

                                                                                                                                                               Pumo 
Ciao a tutti,
Pumo Matteo

Tweet
    Condividi



comments powered by Disqus

Social



    Condividi


Segui @WInformatic

OkNotizie

Autore
Salve a tutti!
Mi chiamo Pumo Matteo.
Per saperne di più: Biografia


Categorie
  • - Mac
  • - Windows
  • - Apple iOS
  • - Android
  • - Programmazione
  • - Guide varie


sito www.worldinformatic.com scambio banner net-parade Net-Parade.it Snippet




Social Network

Follow us on Social Network:

Topics

Windows
Smartphone games

If you want, make a donation

TO CONTACT US, USING THE PAGE IN THE TOP

Author

Immagine
I'm Matteo Pumo. University of Bologna - Faculty of computer Engeneering.
- My Biography

Italian version of site


Site made by Pumo Matteo © Copyright 2013 - Bologna, Italy - All rights reserved - It's prohibit all reproduction form, partial or total, of materials.