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++)
}
Taulukko voidaan myös luonnin yhteydessä alustaa alkuarvoihin.
int OmaTaulukko[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
,
,
,
,
};
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);
}