Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

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. Myöskään toistorakenteissa ei voida käyttää peräkkäisen tiedon käsittelyyn erillisiä, yksittäisiä muuttujia. Tätä varten C-kielessä on taulukko-rakenne.

Syntaksi

Taulukon määrittelyn muoto on:

...

Code Block
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:

Code Block
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.

Taulukon alkio muuttujana

Taulukon alkiota voidaan käyttää kuten mitä tahansa yksinkertaista muuttujaa.
Arvon sijoitus taulukon kolmanteen alkioon käy esimerkiksi seuraavasti:

Code Block

taulukko[2] = 5;

Taulukon alustus

Taulukko voidaan alustaa ohjelman alussa määrittelynsä yhteydessä.

Koko taulukko voidaan nollata:

Code Block

int taulukko[20] = { 0 };

Tässä taulukon ensimmäiselle alkiolle asetetaan arvo nolla.
Loput alkiot nollautuvat, koska niille ei anneta alkuarvoja.

Taulukon alkioille voidaan antaa myös arvoja:

Code Block

int taulukko[20] = { 7, 577 };

Tässä taulukon ensimmäiselle ja toiselle alkiolle asetetaan arvot.
Loput alkiot nollautuvat, koska niille ei anneta alkuarvoja.

Esimerkki 1

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

Code Block
const int#include <stdio.h>

#define KOKO = 5;
5

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

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

Esimerkki 2

Ohjelma, joka käy läpi OmaTaulukko-taulukon kaikki alkiot käyttäen Osoitinta.

Code Block

#include <stdio.h>

#define KOKO 5

int main()
{
    int OmaTaulukko[KOKO] = { 1, 2, 3, 4, 5 };
    int *Osoitin;

    for (Osoitin = OmaTaulukko; Osoitin<OmaTaulukko+KOKO; Osoitin++) {
        printf("Arvo: %d\n", Arvo*Osoitin); // Tulostetaan Osoittimen osoittamat 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:

Code Block

int lukuja[100];

tai

Code Block

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

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

Code Block

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

tai

...