Taulukkomuuttujat, kertausta C-ohjelmoinnista
Wiki Markup |
---|
...
Taulukot ovat kokoelmia samantyyppisiä muuttujia. Luodessa määritellään kuinka monta alkiota taulukossa on. Tämän jälkeen voidaan taulukon kaikkiin alkioihin viitata \[\]-operaattorin avulla. Huom indeksit alkavat nollasta\! |
...
Esimerkki
...
1:
...
Yksiulotteisen
...
taulukon
...
luonti
...
ja
...
käsittely.
...
#include
...
<iostream>
...
using
...
namespace
...
std;
...
Wiki Markup |
---|
int main() \{ // Luodaan int-taulukko viidelle alkiolle: int OmaTaulukko\[5\]; |
...
Wiki Markup |
---|
// Asetetaan taulukon ensimmäinen alkio arvoon 1234:
OmaTaulukko\[0\] = 1234; |
...
Wiki Markup |
---|
// Taulukon viimeisen alkion tulostaminen (Huom\! viimeisen alkion indeksi on neljä, sillä indeksointi alkaa nollasta):
cout << "OmaTaulukko\[4\] = " << OmaTaulukko\[4\] << endl; |
...
Wiki Markup |
---|
// Taulukon kaikkien alkioiden tulostaminen:
for (int i=0; i<5; i++) |
...
\{ cout << "OmaTaulukko\[" << i << "\] = " << OmaTaulukko\[i\] << endl; |
...
} } Taulukko voidaan myös luonnin yhteydessä alustaa alkuarvoihin. |
...
int OmaTaulukko\[5\] = |
...
\{ \-1, \-2, \-3, \-4, \-5 } ; Tämä alustaa taulukon alkiot järjestyksessä ensimmäisestä viimeiseen arvoihin \-1, \-2...-5. Kaksiuloitteinen taulukko |
...
int OmaTaulukko\[5\]\[4\];
Voidaan ymmärtää, että ensimmäinen on rivi-indeksi ja toinen on sarakeindeksi. Huomaa, että ensimmäinen indeksi on välillä 0...4 ja toinen 0...3. Taulukon haluttuun paikkaan päästään indeksien avulla seuraavasti: |
...
Wiki Markup |
---|
int Arvo;
Arvo = OmaTaulukko\[1\]\[2\];
Pelkkä taulukon nimi on osoitin taulukon alkuun. Eli kaksi seuraavaa tapaa osoittaa samaan alkioon: |
...
Arvo
...
=
...
**OmaTaulukko;
...
tai
Wiki Markup |
---|
Arvo = OmaTaulukko\[0\]\[0\];
Haluttaessa osoittaa toista taulukon alkiota, voidaan se tehdä seuraavasti: |
...
int
...
*Osoitin;
...
Osoitin
...
=
...
OmaTaulukko;
...
Osoitin++;
...
//
...
lisätään
...
osoitetta
...
yhdellä
...
Arvo
...
=
...
*Osoitin;
...
Osoitin
...
"juoksee"
...
taulukon
...
läpi
...
rivi
...
kerrallaan.
...
Testattava
...
ohjelma:
...
#include
...
<stdio.h>
...
Wiki Markup |
---|
int main() \{ int OmaTaulukko\[5\]\[4\] = \{ // Alustetaan taulukko |
...
\{ 1,2,3,4 } , \{ 5,6,7,8 } , \{ 9,10,11,12 } , \{ 13,14,15,16 } , \{ 17,18,19,20 } }; |
...
int Arvo;
Arvo = OmaTaulukko\[1\]\[2\]; printf("Arvo = %d\n", Arvo);
Arvo = \**OmaTaulukko; printf("Arvo = %d\n", Arvo);
Arvo = OmaTaulukko\[0\]\[0\]; printf("Arvo = %d\n", Arvo); |
...
int *Osoitin;
Osoitin = OmaTaulukko;
Osoitin++; // lisätään osoitetta yhdellä
Arvo = *Osoitin; printf("Arvo = %d", Arvo);
}