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