You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

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++)

Unknown macro: {        cout << "OmaTaulukko[" << i << "] = " << OmaTaulukko[i] << endl;    }

}
Taulukko voidaan myös luonnin yhteydessä alustaa alkuarvoihin.

int OmaTaulukko[5] =

Unknown macro: { -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
       

Unknown macro: { 1,2,3,4 }

,
        

Unknown macro: { 5,6,7,8 }

,
        

Unknown macro: { 9,10,11,12 }

,
        

Unknown macro: { 13,14,15,16 }

,
        

Unknown macro: { 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);
}

  • No labels
You must log in to comment.