Ero sivun ”Muuttuja (ohjelmointi)” versioiden välillä

[katsottu versio][katsottu versio]
Poistettu sisältö Lisätty sisältö
Ipr1 (keskustelu | muokkaukset)
merkitään lohkot selkeämmin
Ipr1 (keskustelu | muokkaukset)
Rivi 44:
 
Jos muuttujan viittaama tieto on [[Tyyppijärjestelmä#Staattinen vs. dynaaminen tyypitys|staattisesti tyypitetty]], kuten useimmissa [[ohjelmointikielen kääntäjä|käännetyissä]] ohjelmointikielissä tehdään, se ei saa viitata muun kaltaiseen tietoon. Esimerkiksi muuttuja, joka viittaa kokonaislukuarvoon määritellään [[C (ohjelmointikieli)|C-kielessä]] seuraavasti:
<source lang="c">
 
int x;
</source>
 
Tyypillisiä tietotyyppejä, joihin muuttujat ohjelmointikielissä voivat viitata ovat:
Rivi 59 ⟶ 60:
 
Erityisen hyödyllisiä muuttujia ovat muistiavaruuden osoitteet, koska ilman niitä ei moderneja tietokoneohjelmia voitaisi rakentaa. Osoittimen tehtävänä ei ole sisältää varsinaista tietoa vaan kertoa mistä muistiavaruuden osoitteesta tavoiteltava tieto on löydettävissä. Muuttujaa, joka sisältää muistiavaruuden osoitteen sanoitaan [[osoitin|osoittimeksi]] (pointer). Osoittimen etuna on, että se tarvitsee itse vähän tilaa (esimerkiksi 32-bittisissä tietokoneissa 32 bittiä), mutta sen osoittama tietomäärä voi olla mielivaltaisen suuri. Osoittimen yhteydessä on yleensä hyödyllistä määritellä myös sen osoittaman tiedon tyyppi. Esimerkiksi [[C (ohjelmointikieli)|C]]-kielessä määritellään osoitin merkkijonoon seuraavasti:
<source lang="c">
 
char *teksti;
</source>
 
Tekstin pituus voi olla mitä tahansa, mutta tietoa välitettäessä tarvitsee välittää vain osoittimen arvo. Osoittimiin liittyy myös vakavien [[ohjelmointivirhe]]iden vaara, koska osoittimen arvon uudelleenasettaminen voi johtaa vakaviin virhetilanteisiin. Tästä syystä useissa uudemmissa ohjelmointikielissä ohjelmoija ei pääse itse asettamaan osoittimien arvoja, vaan [[ohjelmointikielen kääntäjä|kääntäjä]] / [[ohjelmointikielen tulkki|tulkki]] suorittaa suurempien tietoalkioiden ja olioiden käsittelyn osoittimilla ohjelmoijan "tietämättä".