C/Muuttujat

Wikikirjastosta
< C

Tämä luku kertoo C:n muuttujista.

Muuttujat ovat yksinkertaisesti nimiä, joilla me käsittelemme jotain paikkaa muistissa – paikkaa, joka sisältää arvon, jolla työskentelemme.

Koska C on suhteellisen alhaisen tason ohjelmointikieli, on muuttujille ensin varattava muistia ennen kuin sitä voidaan käyttää. Tämä tehdään esittelemällä muuttujat tavalla, jolla C-ohjelma näyttää käytettävien muuttujien määrän, miten ne nimetään ja kuinka paljon muistia ne tarvitsevat.

C:n alhaisesta tasosta johtuen tyyppien koot vaihtelevat laitteistosta riippuen. Tästä johtuen kun käsittelemme ja työskentelemme muuttujien kanssa, on tärkeää tietää minkä tyyppisiä muuttujat ovat ja mikä on näiden tyyppien koko.

Esittely, alustus ja sijoitus muuttujiin[muokkaa | muokkaa wikitekstiä]

Ennen muuttujan käyttöä, se pitää esitellä.

int luku;

Tämä luo tarpeeksi tallennustilaa "luku"-nimiselle int-tyyppiselle (lyhennys engl. sanasta integer) muuttujalle. C-kielessä on aina ilmaistava mitä tyyppiä muuttuja on. Perustyypeille on erityisiä varattuja sanoja, joita käsittelemme myöhemmin.

Voit myös esitellä useita muuttujia yhdessä lauseessa:

int luku, luku2, luku3;

Lause sijoittaa kokonaisluvun 5 muistipaikkaan, jossa sijaitsee muuttuja kalat. Yhtä yhtäläisyysmerkkiä kutsutaan sijoitusoperaattoriksi (engl. assignment operator). Kun muuttuja on esitelty (ja mahdollisesti alustettu), voidaan siihen sijoittaa arvoja:

kalat = 5;

Vanhan C-standardin mukaan muuttujat täytyy esitellä lohkon alussa. Et voi esimerkiksi esitellä muuttujia, tulostaa "Hei maailma" ja esitellä lisää muuttujia (ellei tämä tapahdu eri ohjelmalohkossa). Uudempi standardi (C99) mahdollistaa muuttujien esittelyn muuallakin.

Muuttuja voidaan myös esitellä ja sijoittaa siihen jonkin arvon samaan aikaan. Tätä kutsutaan alustukseksi (engl. initialization):

int kalat = 5;

Voit myös sijoittaa muuttujaan toisen muuttujan arvon:

luku = luku3;

Tai voit käyttää sijoitusoperaattoria sarjassa:

luku = luku2 = luku3 = 75;

Sijoitukset etenevät oikealta vasemmalle, eli lopulta kaikkien muuttujien arvoina on 75. Tämä voi ensin näyttää oudolta, mutta avaa helpon tavan sijoittaa helposti moneen muuttujaan saman arvon.

On syytä huomata, että C-kielessä muuttujan arvo on (muutamaa poikkeusta lukuunottamatta) määrittelemätön jos sitä ei alusteta esittelyn yhteydessä. Alustamattomia muuttujia ei siis ole syytä käyttää ennen kuin niihin on sijoitettu jotain, eikä varsinkaan kannata olettaa arvon olevan 0. Jos muuttujaa ei alusteta, muuttujan arvoksi jää samalla muistipaikalla viimeksi ollut arvo, joka voi olla miltei mitä tahansa.

Muuttujien nimeäminen[muokkaa | muokkaa wikitekstiä]

Hyvään tapaan kuuluu käyttää tallennettavaa dataa kuvaavia nimiä. Esimerkki huonosti nimetystä muuttujasta olisi kokonaislukumuuttuja kalat. Kaikki nimet eivät kuitenkaan käy:

  • Nimissä sallittuja merkkejä ovat a-z, numerot ja alaviiva.
  • C:n varattu sana ei voi olla muuttujanimi.
  • Ensimmäinen merkki ei saa olla numero tai alaviiva.

Muuttujien nimessä merkitsevät usein vain ensimmäiset 31 merkkiä, mutta pidempiä saa käyttää. Tällöin kaksi 32-merkkistä muuttujaa voidaan tulkita samana, mikäli ensimmäiset 31 täsmäävät.

Muuttujatyypit[muokkaa | muokkaa wikitekstiä]

C-kielen muuttujilla on neljä perustyyppiä.

Tyyppi Kuvaus
char merkki
int kokonaisluku
float liukuluku
double tarkempi liukuluku

Joitakin perustyyppejä pystytään muuttamaan erityisillä etuliitteillä. Nämä etuliitteet ovat short, long, signed ja unsigned. Esimerkiksi unsigned int tarkoittaa etumerkitöntä kokonaislukua, joten se voi olla vain positiivinen. Kun listaamme kaikki mahdolliset muuttujatyypit, saamme alla olevan listan.

ANSI C (C89) / ISO C (C90) -muuttujatyypit[muokkaa | muokkaa wikitekstiä]

Tyyppi Kuvaus
char merkki
unsigned char etumerkitön merkki
signed char etumerkillinen merkki
int kokonaisluku
unsigned int etumerkitön kokonaisluku
signed int etumerkillinen kokonaisluku
short int lyhyt kokonaisluku
unsigned short int etumerkitön lyhyt kokonaisluku
signed short int etumerkillinen lyhyt kokonaisluku
long int pitkä kokonaisluku
unsigned long int etumerkitön pitkä kokonaisluku
signed long int etumerkillinen pitkä kokonaisluku
float liukuluku
double tarkempi liukuluku
long double pitkä tarkempi liukuluku

ISO C (C99) -muuttujatyypit[muokkaa | muokkaa wikitekstiä]

Tyyppi Kuvaus
long long 64-bittinen pitkä kokonaisluku
unsigned long long 64-bittinen etumerkitön pitkä kokonaisluku
C-ohjelmointikieli

EtusivuHistoriaTyökalut


Yksinkertainen C-kielinen ohjelmaMuuttujatAritmeettiset operaatiotKommentitOhjausrakenteetFunktiotOsoittimetDynaaminen muistinvarausTaulukotMerkkijonotTietueet


C-kielen varatut sanatStandardikirjastoAiheesta muualla