Programmazione.html.it

  Home page

   Guida Base

   Guida al Java

   Guida al C

   Guida al C++

   Guida al Delphi

   Guida a VB .NET

   Guida al Visual Basic

   Guida al Python

   Guida al'UML

  Forum di discussione
  HTML.it


Guida al linguaggio C
  LEZIONE:  Puntatori e Funzioni


I puntatori risultano molto utili anche usati con le funzioni. Generalmente vengono passati alle funzioni gli argomenti (le variabili) per valore (utilizzando return). Ma questo modo di passare gli argomenti, non modifica gli argomenti stessi e quindi potrebbe risultare limitativo quando, invece, vogliamo che vengano modificate le variabili che passiamo alle funzioni.

Pensiamo ad un caso esemplare, uno su tutti, l'uso della funzione swap (alfa, beta) che scambia il valore di alfa con beta e viceversa; in questo caso il valore restituito dalla funzione (con return) non va minimamente ad intaccare i valori delle variabili alfa e beta, cosa che vogliamo, invece, accada per poter effettivamente fare lo scambio. In questo caso si passano alla funzione, non i valori delle variabili, ma il loro indirizzo, trovandoci, quindi, ad operare con i puntatori a tali valori. Facciamo un esempio pratico per chiarire:

#include <stdio.h>

void swap(int *apt, int *bpt);

int main()
{
   int alfa = 5;
   int beta = 13;

   printf("alfa -> %d, beta -> %d\n", alfa, beta);

   swap(&alfa, &beta);

   printf("alfa -> %d, beta -> %d\n", alfa, beta);
}

void swap(int *apt, int *bpt)
{
   int temp;
   temp = *apt;
   *apt = *bpt;
   *bpt = temp;
}



Torna a inizio pagina