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

Compare with Current View Page History

Version 1 Next »

Taulukot

Jos on käsiteltävä suuri määrä yhteenkuuluvia samanlaisia tietoja, ei kannata nimetä jokaista tietoa erikseen, vaan kannattaa järjestää tiedot peräkkäin ja antaa tiedoille yksi yhteinen nimi.

Syntaksi

Taulukon määrittelyn muoto on:

alkion_tyyppi taulukon_nimi[taulukon_koko];

Esimerkiksi:

int OmaTaulukko[5];  // Viiden alkion kokonaislukutaulukko
float taulukko2[10]; // 10 alkion reaalilukutaulukko

Taulukon koko on vakio

Taulukon määrittelyssä on huomattava, että hakasulkeisiin kirjoitettavan arvon tulee olla vakio.
Taulukon kokoa ei voi määrittää muuttujan avulla eikä sitä voi ohjelman aikana muuttaa.

Taulukon alkio ja indeksi

Taulukon yksittäisiin lokeroihin eli taulukon alkioihin (element) viitataan taulukon nimen ja indeksin (index) avulla.

Taulukon alkion nimi on muotoa

taulukon_nimi[indeksi]. 
  • Indeksointi alkaa nollasta.
  • C-kieli ei sisällä taulukon ylivuodon tarkistusta, vaan se on ohjelmoijan tehtävä.
  • Pelkkä taulukon nimi on osoitin taulukon alkuun.

Esimerkki

Ohjelman pätkä joka käy läpi OmaTaulukko-taulukon kaikki alkiot käyttäen Osoitinta.

const int KOKO = 5;
int OmaTaulukko[KOKO] = { 1, 2, 3, 4, 5 };
int *Osoitin = OmaTaulukko;
int i;

for (i=0; i<KOKO; i++) {
    Osoitin++;                  // lisätään osoitetta yhdellä
    Arvo = *Osoitin;            // Haetaan arvo Osoitin-muuttujan osoittamasta muistipaikasta
    printf("Arvo: %d\n", Arvo); // Tulostetaan arvot
}

Osoitin "juoksee" taulukon läpi rivi kerrallaan.


Vektori

Vektori on yksiuloitteinen taulukko.

  • Vektorissa kaikkien jäsenten tyyppi on sama.

Vektori esitellään esimerkiksi seuraavasti:

int lukuja[100];

tai

int lukuja[100]= { 0 }; // nyt kaikille alkioille annetaan alkuarvoksi 0

Vektorin alkioiden tyyppi voi olla mikä tahansa C:n tyypeistä.

char Merkkijono[100]; // merkkijonoon voidaan laittaa 99 merkkiä ja lopetusmerkki

tai

char Merkkijono[] = "sdfadfasd"; // nyt varataan merkkien määrä +1 nollamerkkiä varten, joka lopettaa merkkijonon

  • No labels
You must log in to comment.