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

21 merkkiä lisätty ,  13 vuotta sitten
p
p (Botti lisäsi: bs, he, it, ru, sk, uk)
p (AWB)
}
 
Koska muuttujien "x" ja "y" arvoa ei ole etukäteen sidottu, voidaan funktiota kutsua halutuilla arvoilla, esim.esimerkiksi summa(10,29) palauttaisi arvon 39. Muuttujien sisältämät arvot voivat olla muitakin kuin numeroita. Tyypillisesti ohjelmistoissa muuttujilla käsitellään tekstiä, numeroita ja olioita;
minkä hyvänsä kielen tunteman tyypin ja sitä kautta myös lausekkeen paluuarvo voidaan sijoittaa muuttujaan. Laillisten arvojen joukko riippuu
käytettävän kielen [[tyyppijärjestelmä]]stä.
(+ x y )
 
vastaa merkintää "x + y". Tärkeä operaattori on myös sijoitusoperaattori, jolla muuttuja voidaan sijoittaa toiseen muuttujaan, esim.esimerkiksi
 
summa = x + y;
=== Osoittimet ===
 
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 (esim.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]]-kielessä määritellään osoitin merkkijonoon seuraavasti:
 
char *teksti;
 
Tekstin pituus voi olla mitä tahansa, mutta tietoa välitettäessä tarvitsee välittää vain osoittimen arvo. Osoittimiin liittyy myös vakavien [[ohjelmointivirhe|ohjelmointivirheiden]]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ä".
 
=== Vakiomuuttujat ===
* muuttuja varataan tietokoneen [[keskusmuisti]]in
* muuttuja talletetaan pysyväismuistiin ([[ROM]])
* muuttuja sijaitsee muualla, esim.esimerkiksi verkossa, hajautetulla palvelimella tms.
 
Suurin osa muuttujista luodaan ja talletetaan tietokoneen keskusmuistiin. Tällöin muuttuja säilyy tietokoneen muistissa niin kauan kuin virta katkaistaan tai sen päälle kirjoitetaan uusi arvo. Mikäli muuttuja talletetaan pysyväismuistiin, esim.esimerkiksi [[kiintolevy]]lle tai [[flash-muisti]]in, muuttujan arvo säilyy myös virran katkaisemisen jälkeen.
 
Rekisterihin ja pinoon muuttujalle varataan muistia yleensä vain silloin, jos muuttujaa käsitellään vain lyhytaikaisesti ja muuttujan tulosta ei tarvitse säilyttää kuin hetken aikaa. Tavallisesti mm.muun muassa laskujen välitulokset talletetaan rekistereihin. Esimerkiksi [[Intel]]in prosessoreiden [[x86]]-arkkitehtuurissa yhteenlasku voitaisiin suorittaa rekistereillä seuraavasti:
 
mov ax, 10