Valore vs puntatore
Lezione 7 di 17 del corso Funzioni in C di Coddy.
Quando passiamo parametri a una funzione, possiamo farlo in due modi: per valore o tramite puntatore. Vediamo un semplice esempio per capire cosa intendiamo per valore e puntatore:
#include <stdio.h>
void sum(int a) {
a = a + 1;
printf("sum function: %d\n", a);
}
int main(void) {
int a = 10;
sum(a);
printf("main function: %d\n", a);
return 0;
}L'output:
sum function: 11
main function: 10 Come puoi vedere in questo esempio, usiamo il valore, quindi il valore della variabile a non è cambiato. Tuttavia, se dobbiamo accedere alla variabile e modificarne il valore, possiamo usare un puntatore come parametro.
#include <stdio.h>
void sum(int *a) {
*a = *a + 1;
printf("sum function: %d\n", *a);
}
int main(void) {
int a = 10;
sum(&a);
printf("main function: %d\n", a);
return 0;
}Poiché ora la funzione accetta un puntatore come parametro, quando viene chiamata devi passare l'indirizzo della variabile:
sum(&a);L'output:
sum function: 11
main function: 11 Sfida
FacileNel codice fornito, definiamo una variabile chiamata y.
- Scrivi una funzione
squareche accetta un puntatore a un intero come parametro. - All'interno di questa funzione, eleva al quadrato il valore della variabile a cui punta il puntatore e stampa il suo valore.
- Stampa il valore della variabile sia nella funzione
squaresia nella funzionemainper mostrare che la variabile originale è stata modificata.
Provalo tu
#include <stdio.h>
// Funzione square per elevare al quadrato un valore tramite puntatore
int main(void) {
int a = 200;
// Chiama la funzione square
// Stampa la variabile originale
return 0;
}
Tutte le lezioni di Funzioni in C
Esercitati da solo: Compilatore C online