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

1 169 merkkiä lisätty ,  1 vuosi sitten
linkki: literaali (ohjelmointi), termivalinta "ohjelmointikielissä tehdään" po. "ohjelmointikielissä on laita", typo, lähde: Khan 2018, Barrett & Pack 2005, viitteitä
(kenen mukaan -malline (osoitinten välttämättömyys) + selvennä-malline (termi osoitteet po. osoittimet?), kh: turha pilkku, yhdyssana)
(linkki: literaali (ohjelmointi), termivalinta "ohjelmointikielissä tehdään" po. "ohjelmointikielissä on laita", typo, lähde: Khan 2018, Barrett & Pack 2005, viitteitä)
 
=== Muuttujien käyttö ===
 
Muuttujia käsitellään ohjelmointikielissä operaattoreiden avulla samoin kuin vakioita ja [[literaali (ohjelmointi)|literaalejakin]]. Esimerkiksi yhteenlaskussa käytetään yleensä "+" -operaattoria kahden muuttujan välissä merkitsemään yhteenlaskua. Operaattori voi sijaita myös muualla suhteessa muuttujaan. Esimerkiksi [[Lisp]]-ohjelmointikielessä:
<syntaxhighlight lang="text">
(+ x y )
{{pääartikkeli|[[Tyyppijärjestelmä]]}}
 
Ohjelmointikielissä symbolinen muuttuja voi viitata lähes minkä tyyppiseenminkätyyppiseen tietoon tahansa. Ohjelmointikielissä voidaan kuitenkin määritellä minkätyyppiseen tietoon muuttuja viittaa. Muuttujat voivat olla joko
 
* etukäteen tiettyyn tietotyyppiin sidottuja
* sisältää vapaasti mitä tahansa tietoa
 
Jos muuttujan viittaama tieto on [[Tyyppijärjestelmä#Staattinen vs. dynaaminen tyypitys|staattisesti tyypitetty]], kuten useimmissa [[ohjelmointikielen kääntäjä|käännetyissä]] ohjelmointikielissä tehdäänon laita, se ei saa viitata muun kaltaiseenmuunkaltaiseen tietoon. Esimerkiksi muuttuja, joka viittaa kokonaislukuarvoon määritellään [[C (ohjelmointikieli)|C-kielessä]] seuraavasti:
<syntaxhighlight lang="c">
int x;
=== Osoittimet ===
{{Pääartikkeli|[[Osoitin (ohjelmointi)|osoitin]]}}
Erityisen hyödyllisiä muuttujia ovat muistiavaruuden osoitteet{{selvennä|pitänee olla osoittimet}}, koska ilman niitä ei moderneja tietokoneohjelmia voitaisi rakentaa.{{kenen mukaan}} 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 sanoitaansanotaan [[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:
<syntaxhighlight lang="c">
char *teksti;
</syntaxhighlight>
 
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ä]] /tai [[ohjelmointikielen tulkki|tulkki]] suorittaa suurempien tietoalkioiden ja olioiden käsittelyn osoittimilla ohjelmoijan "tietämättä".
 
=== Vakiomuuttujat ===
 
Jos muuttujan tietoa ei saa muuttaa, voidaan se määritellä ns. vakiomuuttujaksi.<ref>Khan 2013, 51</ref> Muuttuja voi olla vakiomuuttuja myös, jos se sijaitsee muistialueella, johon ei voida kirjoittaa (ns. [[ROM-muisti]])<ref>Barrett & Pack 2005, 49</ref>
 
== Muistinvaraus ==
add ax, bx ; ax sisältää nyt summan 10+29
==Lähteet==
* {{Kirjaviite
| Nimeke = Embedded Systems Design and Applications with the 68HC12 and HCS12| Julkaisija = Pearson/Prentice Hall| Vuosi =2005
| Tekijä = Barrett, Steven Frank & Pack, Daniel J.| Suomentaja =
| Luku = | Sivu = | Sivut = | Selite =
| Julkaisupaikka = Upper Saddle River, NJ| Tunniste = | Isbn =978-0-13-140141-9
| www = | www-teksti = | Tiedostomuoto =
| Viitattu = | Kieli = {{en}} }}
* {{Kirjaviite| Nimeke = Roles of variables from the perspective of computer science educators| Julkaisija = University of Joensuu, Department of Computer Science| Vuosi =2003| Tekijä = Ben-Ari, Mordechai & Sajaniemi, Jorma| Luku = | Sivu = | Sivut = | Selite =
| Julkaisupaikka = Joensuu| Tunniste = | Isbn =952-458-407-7| www = | www-teksti = | Tiedostomuoto =| Viitattu = | Kieli = {{en}} }}
* {{Kirjaviite
| Nimeke = Learn Professional Programming Skill in C++ Programming Language
| Julkaisija = Xlibris| Vuosi =2013
| Tekijä = Khan, Adalat| Suomentaja =
| Luku = | Sivu = | Sivut = | Selite =
| Julkaisupaikka = | Tunniste = | Isbn =978-1-4836-6652-5
| www = | www-teksti = | Tiedostomuoto =
| Viitattu = | Kieli = {{en}} }}
* {{Kirjaviite
| Nimeke = Learn Professional Programming in .Net Using C#, Visual Basic, and Asp.Net| Julkaisija = Xlibris| Vuosi =2018
| Tekijä = Khan, Adalat| Suomentaja =
| Luku = | Sivu = | Sivut = | Selite =
| Julkaisupaikka = | Tunniste = | Isbn =978-1-9845-0154-7
| www = | www-teksti = | Tiedostomuoto =
| Viitattu = | Kieli = {{en}} }}
===Viitteet===
{{viitteet}}
22 482

muokkausta