2.2.1 Muuttujat

Jotta ohjelmalla voitaisiin tehdä jotain mielekästä, sen tulee pystyä tallentamaan ja muokkaamaan tietoa. Tietojen tallennus tehdään keskusmuistiin käyttöjärjestelmän tietoalkiolle varaamaan paikkaan. Kullakin ohjelman suorituskerralla tiedon tallennuspaikka määräytyy vapaana olevan muistin mukaan. Käyttäjän ei tarvitse huolehtia käytettävän muistipaikan fyysisestä sijainnista koneen muistissa, vaan hän voi viitata tietoalkioon määrittelemänsä symbolin, muuttujan nimen avulla.

Seuraavassa kuvassa on muuttujalle lampotila varattu yhden tavun suuruinen alue keskusmuistista:

Muuttuja = käyttäjän määrittelemä symboli, jolla viitataan keskusmuistista varatun muistipaikan sisältöön.

Mikä on lampotila muuttujan arvo edellisessä kuvassa? Oletetaan, että kyseessä on positiivinen kokonaisluku.

Muuttujan nimessä saa olla seuraavia merkkejä:

Standardin mukaan nimen pituutta ei ole rajoitettu ja se voi koostua mielivaltaisesta yhdistelmästä kirjaimia, numeroita ja alleviivausmerkkejä, kuitenkin siten, että ensimmäinen merkki ei saa olla numero. Huomaa erityisesti, että skandinaavisia kirjaimia (åäöÅÄÖ) ei saa käyttää muuttujan nimessä!

Isojen ja pienten kirjainten ero on merkittävä! Nimet Mari, mari ja MARI viittaavat kaikki eri muuttujiin. Samankaltaisten muuttujien nimien käyttäminen on sallittua, mutta saattaa pian johtaa ikäviin sekaannuksiin. Yleensä on tapana kirjoittaa muuttujien nimet ainoastaan pieniä kirjaimia käyttäen.

Muuttujan nimeämiseen kannattaa kiinnittää riittävästi huomiota. Koska C++-kielen standardi sallii periaatteessa kuinka pitkän nimen tahansa (tosin laitteisto saattaa asettaa rajoituksia), voidaan muuttujien nimet valita siten, että ohjelmat ovat hyvin pitkälle itsekommentoivia.

Jos esimerkiksi lasketaan auton keskinopeutta ja kirjoitetaan nopeudelle lauseke käyttämällä huonoja nimiä, saadaan kenties lause

x1 = x2/x3;

joka kylläkin on nopea kirjoittaa, mutta ei luettavuudessaan vedä vertoja lauseelle

keskinopeus = kuljettu_matka/kaytetty_aika;

Tämä lause on melko itsekommentoiva: vaikkei lauseen toiminnasta kerrottaisi mitään selitystä, voidaan siitä suoraan nähdä laskettava asia. Toisaalta siinä käytetyt nimet alkavat olla jo melko pitkiä muuttujien niminä. Jos niitä tarvitaan usein (eli joudutaan kirjoittamaan usein), voi nimien lyhentäminen käydä mielessä. Keskinopeuden laskemiseen lyhyemmät muuttujan nimet saataisiin käyttämällä fysiikasta tuttuja suureita laskettaville ominaisuuksille:

v = s/t;

Käytännössä muuttujien nimet tulee valita sopivaksi kompromissiksi lyhyydestä ja kuvaavuudesta.

Esimerkkejä sallituista muuttujan nimistä:

Esimerkkejä kielletyistä muuttujan nimistä:

Miksi edellä luetellut kielletyt muuttujan nimet ovat kiellettyjä ?