Parametro (programmazione)

Un parametro, in informatica, è un indirizzo di memoria o un valore (tra quelli di un insieme omogeneo e coerente) che una funzione si aspetta di ricevere per eseguire il suo compito.
Descrizione[modifica | modifica wikitesto]
La funzione può essere una semplice routine interna ad un programma, ma anche un programma di stampa che vuole sapere se stampare in verticale o in orizzontale, od, ancora, un sistema informativo di magazzino che vuole sapere se deve applicare il LIFO o il FIFO per la valorizzazione delle giacenze di magazzino.
La funzione, il programma e il sistema si aspettano (valori) e vogliono sapere (cosa fare) perché il programmatore ha espressamente previsto che vengano assunte informazioni in tal senso, ha cioè previsto il passaggio di parametri. Nei casi di routine o funzioni interne ai programmi, si utilizza più spesso il termine argomento.
A volte può essere vantaggioso definire una funzione in grado di accettare differenti set di parametri, applicando la tecnica del cosiddetto overloading. Per esempio: si immagini una subroutine che costruisce un oggetto grafico da spostare sullo schermo mediante tasti di direzione. Per definire completamente questo oggetto sono necessari molti parametri, come: colore della traccia lasciata, coordinate iniziali, velocità di spostamento. Se il programmatore volesse, invece, definire soltanto il colore dell'oggetto, potrebbe costruirlo passandogli soltanto il parametro "colore" e lasciando che agli altri parametri venga assegnato un set di valori di "default" (ad esempio la posizione iniziale potrebbe coincidere con il centro dello schermo).
Passaggio di Parametri[modifica | modifica wikitesto]
Il programma chiamante ed il sottoprogramma scambiano dati attraverso una lista di variabili, definite all'interno del sottoprogramma, dette argomenti o parametri formali del sottoprogramma. Esse sono destinate ad ospitare i dati di ingresso e/o di uscita del sottoprogramma. Esistono 2 tecniche principali per lo scambio di parametri: Scambio per valore e Scambio per indirizzo.
Parametri per valore (by value)[modifica | modifica wikitesto]
Nello scambio per valore (by value), il valore del parametro attuale o effettivo viene copiato nel parametro formale. Il parametro formale costituisce quindi una copia locale del parametro effettivo. Ogni modifica fatta sul parametro formale non si riflette mai sul parametro effettivo.
Parametri per riferimento (by reference)[modifica | modifica wikitesto]
Nello scambio per riferimento (by reference), al parametro formale viene assegnato l'indirizzo del parametro effettivo. In questo modo, al sottoprogramma è possibile accedere al registro che ospita il parametro effettivo e fare delle modifiche che saranno poi visibili al programma chiamante. Qualunque modifica sul parametro formale avrà effetto sul parametro attuale corrispondente e si definisce con un & davanti al nome del parametro formale. Quest'ultimo è un modo efficace per realizzare una funzione che deve restituire più di un valore.