...
Taulukkomuuttujat,
...
kertausta
...
C-ohjelmoinnista
...
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;
...
int
...
main()
...
{
//
...
Luodaan
...
int-taulukko
...
viidelle
...
alkiolle:
...
int OmaTaulukko[5
...
];
...
//
...
Asetetaan
...
taulukon
...
ensimmäinen
...
alkio
...
arvoon
...
1234:
...
OmaTaulukko[0
...
]
...
=
...
1234;
...
//
...
Taulukon
...
viimeisen
...
alkion
...
tulostaminen
...
(Huom
...
!
...
viimeisen
...
alkion
...
indeksi
...
on
...
neljä,
...
sillä
...
indeksointi
...
alkaa
...
nollasta):
...
cout << "OmaTaulukko
...
[4
...
]
...
=
...
"
...
<<
...
OmaTaulukko
...
[4
...
]
...
<<
...
endl;
...
//
...
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:
...
int
...
Arvo;
...
Arvo
...
=
...
OmaTaulukko
...
[1
...
]
...
[2
...
];
...
Pelkkä
...
taulukon
...
nimi
...
on
...
osoitin
...
taulukon
...
alkuun.
...
Eli
...
kaksi
...
seuraavaa
...
tapaa
...
osoittaa
...
samaan
...
alkioon:
...
Arvo
...
=
...
**OmaTaulukko;
...
tai
...
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>
...
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);
}