Ero sivun ”C” versioiden välillä

Poistettu sisältö Lisätty sisältö
Tigru (keskustelu | muokkaukset)
lohkaisin palan
Tigru (keskustelu | muokkaukset)
→‎Muuttujat: lohkaisen
Rivi 17:
* [[/Yksinkertainen C-kielinen ohjelma/]]
 
==* [[/Muuttujat ==/]]
<!-- Ei puhuta näkyvyysalueista ennenkuin niitä on käsitelty, jooko? -->
Muuttujat ovat yksinkertaisesti nimiä, joilla me käsittelemme jotain paikkaa muistissa &ndash; 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 ===
 
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 jokin 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 ===
 
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.
 
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 ===
C-kielen muuttujilla on neljä perustyyppiä.
 
{| class="wikitable"
!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 ====
 
{| class="wikitable"
!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 ====
 
{| class="wikitable"
!Tyyppi!!Kuvaus
|-
|'''long long'''||64-bittinen pitkä kokonaisluku
|-
|'''unsigned long long'''||64-bittinen etumerkitön pitkä kokonaisluku
|}
 
== Aritmeettiset operaatiot ==
Noudettu kohteesta ”https://fi.wikibooks.org/wiki/C