...
Edellä oleva määrittely kannatta tehdä esim. silloin kun samaa ohjelmistoprojektia tekee useita henkilöitä ja halutaan estää samanimisten eri tiedostoissa olevien muuttujien vaikutus toisiinsa. Nämäkin muuttujat täytyy tietysti esitellä funktioiden ulkopuolella.
Vektori
Vektori on yksiuloitteinen taulukko. Vektorissa kaikkien jsenten tyyppi on sama. Vektori esitellään esimerkiksi seuraavasti:
Code Block |
---|
int lukuja\[100\];
|
tai
Code Block |
---|
int lukuja[100]= { 0 }; // nyt kaikille alkioille annetaan alkuarvoksi 0
|
Vektorin alkioiden tyyppi voi olla mikä tahansa C:n tyypeistä.
Code Block |
---|
char Merkkijoono[100]; // merkkijonoon voidaan laittaa 99 merkkiä ja lopetusmerkki
|
tai
Wiki Markup |
---|
char Merkkijono\[\]="sdfadfasd";//nyt varataan merkkien määrä \+1 nollamerkkiä varten joka lopettaa merkkijonon |
Taulukkomuuttujat
C-kieli käsittelee taulukoita indeksien avulla. Indeksointi alkaa nollasta. C-kieli ei sisällä taulukon ylivuodon tarkastusta vaan se on ohjelmoitsijan tehtävä. Taulukon kaikki alkiot ovat samaa tyyppiä keskenään. Taulukko esitellään seuraavasti:
Wiki Markup |
---|
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:
Wiki Markup |
---|
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.
...
Merkkijonot
Merkkijono on vektori eli yksiulotteinen taulukko. C-kielessä ei merkkijonoille ole valmista muuttujaa, vaan merkkijonot on esiteltävä vektoreina seuraavasti:
...