You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Muuttujat tallettavat tiedot, joita ohjelma käsittelee. Tieto voi olla lukuja ja merkkejä, tieto voi olla esitetty yksittäinä arvoina, vektoreina tai tulukkomuodossa. Muuttujat ovat siis tietovarastoja, tietovarastot ovat erilaiselle tiedolle erikokoisia. Siksi C-kielessä tiedolla on aina tyyppi, tyyppi kertoo muuttujan tarvitseman muistimäärän. Tietokoneen muistia kuvataan tavuilla. Tavun pituus on kahdeksan bittiä. Kahdeksalla bitillä voidaan kuvata luvut 0...255 tai -128...+127. Esimerkiksi ASCII-taulukossa, joka sisältää tietokoneen esittämät merkit, jokainen kirjoitettava merkki edustaa lukua 0...255. Täten yksi merkki varaa tietokoneelta muistia yhden tavun. (UNI-koodissa merkkit esitetään  kahdella tavulla, jollin voidaan esittää 65535, jolloin miltei kaikki maailman merkit saadaan esitettyä ilman erillisiä kooditaulukoita)

C-kielessä muuttujilla voi olla seuraava tyyppi:
   char       = merkki
   int          = kokonaisluku
   float       = reaaliluku
   double   = kaksoistarkkuuden reaaliluku
   void       = tavuosoitin, (alussa voidaan ajatella, että tämä ei tarkoita mitään)

Muuttujan tyyppi kertoo sen, millaista tietoa muuttujaan voi tallentaa, esimerkiksi char OmaMuuttuja;

Esittelyn jälkeen muuttujaan OmaMuuttuja voidaan sijoittaa yksi merkki, esim.

OmaMuuttuja = "testi"; //huom! yksittäiset merkit laitetaan heittomerkkien väliin
int iLuku; // kokonaislukumuuttuja

Muuttuja voidaan haluttaessa myös alustaa esittelyn yhteydessä, esim.
int Luku=5;
char Merkki='a';

Muuttujan lisämääreet:
   signed = etumerkillinen
   unsigned = etumerkitön
   long = pitkä
   short = lyhyt

Esim.

unsigned int Luku = 32343; //Muuttuja voi olla ainoastaan positiivinen kokonaisluku

Lisämääreillä tarkennetaan tyyppiä. Lisämääreiden merkitys on kääntäjäkohtaista ja siksi ne on syytä tarkastaa ko. kääntäjän käsikirjoista.

Muuttujan nimeäminen

Muuttuja kannattaa nimetä selkeällä nimellä, joka kertoo muuttujan käyttötarkoituksen. Isot ja pienet kirjaimet tarkoittavat eri asiaa.
Puhdas C-kielen esittelytapa on seuraava:

    int auton_nopeus;

Muuttujan eri sanat voidaan erotella  toisistaan esimerkiksi alaviivalla.

C++:ssa käytetään tyypillisesti tapaa, jossa muuttujassa olevat sanat aloitetaan isoilla kirjaimilla seuraavasti:

    int AutonNopeus;

Monet ohjelmoitsijat liittävät muuttujan eteen kirjaimen kuvaamaan muuttujan tyyppiä seuraavasti:

    int iAutonNopeus;

Tyypistä otetaan yksi kirjain muuttujan eteen muistuttamaan ohjelmoitsijaa muuttujalle annetusta tyypistä. (tätä sanotaan unkarilaiseksi notaatioksi)
Edellä mainitut muuttujien nimeystavat eivät vaikuta millään tapaa muuttujan käyttöön tai ohjelman toimintaan.

Muuttujan näkyvyysalue

Muuttuja voi olla käytettävissä ainoastaan yhdessä funktiossa, yhdessä tiedostossa tai koko ohjelmassa. Riippuen siitä missä kohtaa ohjelmaa muuttuja esitellään, sitä voidaan käyttää ohjelmassa eri tavoin.

Yhteinen eli public muuttuja

Yhteinen, globaali, public  muuttuja esitellään kaikkien funktioiden ulkopuolella ja se "näkyy" eli se on käytettävissä kaikissa funktioissa, jotka ovat samassa tiedostossa kuin muuttuja. Yhteistä muuttujaa on hyvin helppo käyttää, koska sen arvoon päästään käsiksi kaikista funktioista. Kun ohjelma kasvaa suureksi, siinä voi olla tuhansia muuttujia, jolloin yhteisten muuttujien käyttö tulee hankalaksi ja ohjelmasta tulee altis virheille.

Paikallinen eli local muuttuja

Paikallinen muuttuja esitellään funktion sisällä ja se on käytettävissä ainoastaan siinä funktiossa, jossa se on määritelty. Alkuarvokseen paikallinen muuttuja saa satunnaisarvon, siksi paikalliset muuttujat monesti alustetaan johonkin alkuarvoon esittelyn yhteydessä.

Paikallinen muuttuja katoaa (ja siten kadottaa arvonsa), kun funktio päättyy.

Paikallinen staattinen muuttuja

Jos halutaan paikallisen muuttujan muistavan arvonsa siitä, kun funktio suoritettiin edellisen kerran, täytyy muuttuja esitellä staattisena esim. seuraavasti:

    static int Laskuri;

Staattinen muuttuja saa automaattisesti alkuarvokseen nollan, joten sitä ei alusteta esittelyn yhteydessä. Staatisena esitellyllä muuttujalla voidaan esim. laskea, kuinka monta kertaa ko. funktiossa on käyty.

Yhteinen staattinen muuttuja

Haluttaessa rajata yhteisen muuttujan näkyvyys ainoastaan siihen tiedostoon, jossa se on esitelty, täytyy yhteinen muuttuja esitellä staattisena esim. seuraavasti:

    static long Summa;

Edellä oleva määrittely kannatta tehdä esim. silloin kun samaa ohjelmistoprojektia tekee useita henkilöitä ja halutaan estää samanimisten eri tiedostoissa olevien muuttujien vaikutus toisiinsa. Nämäkin muuttujat täytyy tietysti esitellä funktioiden ulkopuolella.


  • No labels
You must log in to comment.