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\! Wiki Markup
Esimerkki 1: Yksiulotteisen taulukon luonti ja käsittely.
#include <iostream>
using namespace std;
int main()
\{
// Luodaan Wiki Markup
{
// Luodaan int-taulukko viidelle alkiolle:
int OmaTaulukko\
int OmaTaulukko[5\];   Wiki Markup
; // Asetetaan taulukon ensimmäinen alkio arvoon 1234:
OmaTaulukko\
OmaTaulukko[0\] = 1234;
// Taulukon viimeisen alkion tulostaminen (Huom\! viimeisen alkion indeksi on neljä, sillä indeksointi alkaa nollasta):
cout << Wiki Markup
cout << "OmaTaulukko\[4\] = " << OmaTaulukko\[4\] << endl;
// Taulukon kaikkien alkioiden tulostaminen:
for Wiki Markup
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;
Wiki Markup
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\];
Wiki Markup
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>unmigrated-wiki-markup
int main()
\{
int OmaTaulukko\[5\]\[4\] = \{ // Alustetaan taulukko
\{
{
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\]; }
};
int Arvo;
Arvo = OmaTaulukko[1][2]; printf("Arvo = %d\n", Arvo);
Arvo = \
Arvo = **OmaTaulukko; printf("Arvo = %d\n", Arvo);
Arvo = OmaTaulukko\[0\]\[0\];
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);
}