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. 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 |
---|
Wiki Markup |
h1. 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. 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. h2. Syntaksi Taulukon määrittelyn muoto on: {code} alkion_tyyppi taulukon_nimi[taulukon_koko]; {code} |
Esimerkiksi:
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 |
---|
{code} h2. 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. h2. 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} taulukon_nimi[indeksi] {code} * Indeksointi alkaa nollasta. * |
- 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; {code} h2. Taulukon alustus Taulukko |
Taulukon alustus
Taulukko voidaan alustaa ohjelman alussa määrittelynsä yhteydessä.
Koko taulukko voidaan nollata:
Code Block |
---|
voidaan alustaa ohjelman alussa määrittelynsä yhteydessä. Koko taulukko voidaan nollata: {code} int taulukko[20] = { 0 }; {code} |
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 }; {code} |
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.
Code Block |
---|
} #include <stdio.h> #define KOKO 5 int main() { int OmaTaulukko[KOKO] = { 1, 2, 3, 4, 5 }; int i; for (i=0; i<KOKO; i++) { printf("%d\n", OmaTaulukko[i]); // Tulostetaan arvot omille riveilleen } } {code} h2. Esimerkki 2 |
Esimerkki 2
Ohjelma,
...
joka
...
käy
...
läpi
...
OmaTaulukko
...
-taulukon
...
kaikki
...
alkiot
...
käyttäen
...
Code Block |
---|
|Osoittimet]. {code} #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("%d\n", *Osoitin); // Tulostetaan Osoittimen osoittamat arvot } } {code} |
Osoitin
...
"juoksee"
...
taulukon
...
läpi
...
rivi
...
kerrallaan.
...