Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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()
\{
&nbsp;&nbsp;&nbsp;   // Luodaan int-taulukko viidelle alkiolle:
&nbsp;&nbsp;&nbsp; int OmaTaulukko\[5\];

...

Wiki Markup
&nbsp;&nbsp;&nbsp;   // Asetetaan taulukon   ensimmäinen alkio arvoon 1234:
&nbsp;&nbsp;&nbsp; OmaTaulukko\[0\] = 1234;

...

Wiki Markup
&nbsp;&nbsp;&nbsp;   // Taulukon viimeisen alkion tulostaminen (Huom\! viimeisen alkion  indeksi on neljä, sillä indeksointi alkaa nollasta):
&nbsp;&nbsp;&nbsp; cout << "OmaTaulukko\[4\] = " << OmaTaulukko\[4\] << endl;

...

Wiki Markup
&nbsp;&nbsp;&nbsp;   // Taulukon kaikkien alkioiden tulostaminen:
&nbsp;&nbsp;&nbsp; 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()
\{
&nbsp;&nbsp;&nbsp; int OmaTaulukko\[5\]\[4\] = \{   // Alustetaan taulukko
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;

...


\{ 1,2,3,4 }
,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
\{ 5,6,7,8 }
,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
\{ 9,10,11,12 }
,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
\{ 13,14,15,16 }
,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
\{ 17,18,19,20 }
&nbsp;&nbsp;&nbsp; };

...


&nbsp;&nbsp;&nbsp;&nbsp;int Arvo;
&nbsp;&nbsp;&nbsp;&nbsp;Arvo = OmaTaulukko\[1\]\[2\];&nbsp; printf("Arvo = %d\n", Arvo);
&nbsp;&nbsp;&nbsp;&nbsp;Arvo = \**OmaTaulukko;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("Arvo = %d\n", Arvo);
&nbsp;&nbsp;&nbsp;&nbsp;Arvo = OmaTaulukko\[0\]\[0\];&nbsp; printf("Arvo = %d\n", Arvo);

...

    int *Osoitin;
    Osoitin = OmaTaulukko;
    Osoitin++; // lisätään osoitetta yhdellä
    Arvo = *Osoitin;           printf("Arvo = %d", Arvo);
}