previous next Up Title Contents Index

Esim 3

Kopioidaan osoitinmuuttujan arvoksi vakiomerkkijono (eli sen osoite).

    #include <stdio.h>
    void main(void)
    {
        char *p; /* p on osoitinmuuttuja */
        p="Tämä on merkkijono"; 
        printf (p);
    }

Kääntäjä toimii yllä olevaa ohjelmaa kääntäessään siten, että se sijoittaa merkkijonon Tämä on merkkijono muistiin merkkijonovakioille varattuun paikkaan (tilanvaraus tehdään siis järjestelmän toimesta) ja sijoittaa merkkijonon osoitteen osoitinmuuttujan p arvoksi.

Merkkijonon loppuun sijoitetaan muistissa loppumerkki '\0'.

Ohjelmassa oleva tulostuslause printf(p); tulostaa merkkijonon kuvaruudulle.

Esimerkissä oleva sijoituslause on mahdollinen, koska p on osoitinmuuttuja ja toisaalta merkkijono sellaisenaan edustaa C:ssä merkkijonon osoitetta. Näin ollen sijoituslauseessa sijoitetaan osoite osoitinmuuttujan arvoksi, mikä on täysin sallittua.

previous next Up Title Contents Index