Ottakaamme esimerkiksi mittakaava_muunnos - funktio. Mikäli ohjelma haluttaisiin muuttaa siten, että myös mittakaavaa olisi mahdollista muuttaa, pitäisi myös mittakaava voida välittää muunnos- aliohjelmalle parametrina. Kutsussa tämä voisi näyttää esim. tältä:
matka_km = mittakaava_muunnos(10000.0,32);Vastaavasti funktio- esittelyssä täytyisi olla kaksi parametria:
double mittakaava_muunnos(double mittakaava,int matka_mm) { return matka_mm*mittakaava/MM_KM; }Kun kutsu suoritetaan, välitetään aliohjelmalle parametrit siinä järjestyksessä, missä ne on esitelty. Voitaisiin siis kuvitella aliohjelmakutsun aiheuttavan sijoitukset aliohjelman parametrimuuttujiin:
mittakaava = 10000.0; matka_mm = 32;Jos kutsu on muotoa
matka_km = mittakaava_muunnos(MITTAKAAVA,matka_mm);kuvitellaan sijoitukset
mittakaava = MITTAKAAVA; /* Ohjelman vakio */ matka_mm = matka_mm; /* Pääohjelman muuttuja matka_mm */Siis vaikka kutsussa ja esittelyssä esiintyykin sama nimi, ei nimien samuudella ole muuta tekemistä kuin mahdollisesti se, että turha on väkisinkään keksiä lyhennettyjä huonoja nimiä, jos kerran on hyvä nimi keksitty kuvaamaan jotakin asiaa.
Parametreista osa, ei yhtään tai kaikki voivat olla myös osoitteita tai referenssejä.
Huom! Vaikka kaikilla aliohjelman parametreilla olisikin sama tyyppi, täytyy jokaisen parametrin tyyppi mainita silti erikseen:
double nelion_ala(double korkeus, double leveys)