Riepilogo: argomenti puntatore nelle funzioni
Fa parte della sezione Logica e flusso del percorso C di Coddy. Lezione 30 di 63.
Sfida
FacileScrivi un programma C che implementi una funzione per trovare sia il valore minimo sia quello massimo in un array usando argomenti puntatore. Il programma deve:
- Creare una funzione chiamata
findMinMaxche accetta quattro parametri:- Un array di interi
- La dimensione dell'array
- Un puntatore a un intero in cui memorizzare il valore minimo
- Un puntatore a un intero in cui memorizzare il valore massimo
- All'interno della funzione
findMinMax, scorrere l'array per trovare i valori minimo e massimo - Usare l'operatore di dereferenziazione per memorizzare il valore minimo all'indirizzo puntato dal puntatore min
- Usare l'operatore di dereferenziazione per memorizzare il valore massimo all'indirizzo puntato dal puntatore max
- Nella funzione
main, leggere un interonche rappresenta il numero di elementi nell'array - Leggere
nvalori interi e memorizzarli in un array - Dichiarare due variabili intere
minValueemaxValueper memorizzare i risultati - Chiamare la funzione
findMinMax, passando l'array, la sua dimensione e gli indirizzi diminValueemaxValue - Stampare i risultati nel formato:
Minimum: [value]eMaximum: [value]
Ad esempio, se l'input è:
5
12 7 23 4 18L'output dovrebbe essere:
Minimum: 4
Maximum: 23Questa sfida illustra la potente tecnica di usare più argomenti puntatore per restituire più valori con una singola chiamata di funzione, consentendo alla funzione di modificare le variabili nell'ambito della funzione chiamante.
Provalo tu
#include <stdio.h>
// TODO: Scrivi qui la tua funzione findMinMax
int main() {
int n;
scanf("%d", &n);
int arr[n];
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
int minValue, maxValue;
// TODO: Chiama qui la funzione findMinMax
printf("Minimum: %d\n", minValue);
printf("Maximum: %d\n", maxValue);
return 0;
}Tutte le lezioni di Logica e flusso
1Fondamenti dei puntatori
Che cos’è un puntatore?Dichiarare i puntatoriL’operatore di indirizzo (&)L’operatore di dereferenziazione (*)Puntatori NULLRiepilogo: nozioni di base sui puntatori4Progetto: Utility di testo semplice
Panoramica del progettoConteggio dei caratteri2Puntatori e array
I nomi degli array come puntatoriElementi degli array e puntatoriAritmetica dei puntatoriConfrontare i puntatoriRiepilogo: attraversamento di un array con i puntatori5Puntatori e funzioni
Passaggio per valorePassare puntatori alle funzioniModificare le variabili tramite puntatoriUn esempio classico: scambiare valoriPassare array alle funzioniRiepilogo: argomenti puntatore nelle funzioni3Array di caratteri e stringhe
Stringhe come array di charIl terminatore nullInput di stringhe con scanfUso di strlen()Uso di strcpy()Uso di strcat()Uso di strcmp()Riepilogo: funzioni di base per le stringhe6Gestione della memoria
Memoria Stack vs. HeapAllocazione dinamica - malloc()Usare sizeof() per l'allocazioneVerificare il fallimento dell'allocazioneLiberare la memoria con free()Allocare con calloc()Riepilogo: array dinamico9Progetto: Inserimento semplice di un contatto
Progetto: Definire una struct ContattoFunzione per creare un contattoEsercitati da solo: Compilatore C online