Versions Compared

Key

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

...

Paikallinen muuttuja esitellään ohjelmalohkon (tai funktion) sisällä ja se on käytettävissä ainoastaan siinä lohkossa, jossa se on määritelty. Alkuarvokseen paikallinen muuttuja saa satunnaisarvon, siksi paikalliset muuttujat tulee alustaa johonkin alkuarvoon esittelyn yhteydessä.
Paikallinen muuttuja katoaa (ja siten kadottaa arvonsa), kun ohjelmalohko (tai funktio) päättyy.

Esimerkki ohjelmalohkon funktion paikallisesta muuttujasta:

Code Block


intvoid mainfunktio()
{
    intfloat if;                                 // Main-funktionFunktion paikallinen muuttuja

    for (i=0; i<100; i++) {
        float f;      printf("Anna liukuluku: ");
    scanf("%f", &f);
    printf("Annoit luvun %.2f\n", f);
}

int main()
{
    int i;                     //  For-toistorakenteen sisäinen paikallinen muuttuja
        printf("Anna liukuluku: ");// Main-funktion paikallinen muuttuja

    for (i=0; i<100;  scanf("%f", &f);i++) {
        printf("Annoit luvun %.2f\n", ffunktio();
    }
}

Esimerkki funktion ohjelmalohkon paikallisesta muuttujasta:

Code Block

voidint funktiomain()
{
    int i;                                 // Main-funktion paikallinen muuttuja

    float f;for (i=0; i<100; i++) {
        float f;                           // FunktionFor-toistorakenteen sisäinen paikallinen muuttuja
        printf("Anna liukuluku: ");
        scanf("%f", &f);
        printf("Annoit luvun %.2f\n", f);
    }
}

Samannimiset muuttujat

Ohjelmassa ei saa olla samannimisiä muuttujia, paitsi jos ne on määritelty eri näkyvyysalueelle. Eli ohjelmassa voi olla globaali muuttuja int x sekä myös mainissa muuttuja int x. Tämä on sallittua, tosin ei suositeltavaa ilmiselvän sekaannusvaaran takia.

Code Block

#include <stdio.h>

int x = 5 main()
{
    int i;                                 // Main-funktion paikallinen muuttuja

Globaali muuttuja

int main()
{
    int forx (i=0; i<100; i++) {
     -100;                         // Main-funktion paikallinen muuttuja

    funktio();
    }
}
printf("x = %d\n", x);
}

Minkä arvon ohjelma tulostaa?

No Format

Vastaus: x = -100

Jos ohjelmassa on saman nimisiä muuttujia, viitataan aina 'lähinnä olevaan' eli rajatuimmalla näkyvyydellä olevaan.

Merkkijonot

Merkkijono on vektori eli yksiulotteinen taulukko. C-kielessä ei merkkijonoille ole valmista muuttujaa, vaan merkkijonot on esiteltävä vektoreina seuraavasti:

...