Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

...

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);
}