Muuttuja (ohjelmointi)

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 27. tammikuuta 2021 tarkistetusta versiosta . tarkastukset vaativat 3 muokkausta .

Pakollisen ohjelmoinnin muuttuja on  nimetty tai muuten osoitettava muistialue, jonka osoitteella voidaan päästä käsiksi tietoihin . Muuttujan sisältämää tietoa (eli tietyssä muistiosoitteessa) kutsutaan tämän muuttujan arvoksi (lyhyesti: muuttuja on nimetty muistinpala, jolla on tietty tyyppi).

Muissa ohjelmointiparadigmoissa , esimerkiksi toiminnallisessa ja loogisessa , muuttujan käsite osoittautuu hieman erilaiseksi. Tällaisissa kielissä muuttuja määritellään nimeksi , johon arvo voidaan liittää , tai jopa arvon tallennuspaikaksi.

Muuttujan laajuus ja/tai käyttöikä joissakin kielissä annetaan tallennusluokalla .

Luokitus

Muuttujien staattinen ja dynaaminen kirjoittaminen

Jos tietotyyppi määritetään käännösaikana , staattinen kirjoitus tapahtuu ja jos ajonaikana, dynaaminen kirjoitus . Jälkimmäisessä tapauksessa toisinaan sanotaan, että muuttujalla ei ole tyyppiä, vaikka sen sisältämä tieto varmasti kuuluu tiettyyn tietotyyppiin , mutta tämä selviää jo ohjelman suorituksen aikana.

Useimmissa tapauksissa staattinen kirjoittaminen vähentää ohjelman suorituskustannuksia, koska dynaaminen kirjoittaminen vaatii tietotyyppien selvittämisen ja niiden lähettämisen sekatyyppisiksi lausekkeiksi. Staattisen kirjoittamisen avulla voit tarkistaa tyypit ohjelman käännösvaiheessa. Se helpottaa myös vikojen havaitsemista kehitysvaiheessa, jolloin niiden korjaaminen on halvempaa.

Monissa tapauksissa on kuitenkin tarpeen käyttää dynaamista kirjoittamista. Esimerkiksi tarve säilyttää yhteensopivuus siirryttäessä uuteen tietojen esitysmuotoon (esimerkiksi projektin vanha osa lähettää päivämäärän proseduuriin merkkijonona ja uudet objektit käyttävät nykyaikaisempaa numeerista tyyppiä).

Staattiset ja dynaamiset muuttujat

Nimetyn muistipaikan osoite voidaan myös määrittää sekä käännös- että suoritusaikana. Muuttujat voivat olla luomishetkellä staattisia tai dynaamisia . Ensimmäiset luodaan ohjelman tai aliohjelman käynnistyksen yhteydessä ja jälkimmäiset ohjelman suorittamisen aikana.

Dynaamista osoitusta tarvitaan vain silloin, kun tallennettavan tiedon määrää ei tiedetä tarkasti etukäteen. Tällaiset tiedot sijoitetaan erityisiin dynaamisiin rakenteisiin, joiden tyyppi valitaan tehtävän erityispiirteiden ja valitun ohjelmointijärjestelmän ominaisuuksien mukaan. Se voi olla pino , pino , jono jne. Jopa tiedosto siinä mielessä, että N. Wirth laittaa Pascaliin , on dynaaminen rakenne.

Paikalliset ja globaalit muuttujat. Soveltamisalat

Laajuuden mukaan paikalliset ja globaalit muuttujat erotetaan toisistaan. Ensimmäiset ovat käytettävissä vain tietylle aliohjelmalle, jälkimmäiset koko ohjelmalle. Modulaarisen ja objektiohjelmoinnin leviämisen myötä oli myös yhteisiä muuttujia (käytettävissä tietyille aliohjelmahierarkian tasoille). Laajuuden antaa joskus tallennusluokka . Näkyvyyttä voidaan rajoittaa ottamalla käyttöön nimiavaruuksia .

Näkyvyysrajoitus keksittiin sekä samoja muuttujien nimiä varten (mikä on järkevää, kun muuttujat suorittavat samanlaisen toiminnon eri aliohjelmissa) että suojatakseen muuttujien laittomaan käyttöön liittyviltä virheiltä (tätä varten ohjelmoijan on kuitenkin omistaa ja käyttää asianmukaista logiikkaa tietojen strukturoinnissa).

Yksinkertaiset ja monimutkaiset muuttujat

Sisäisen rakenteen olemassaolon mukaan muuttujat voivat olla yksinkertaisia ​​tai monimutkaisia ​​(komposiittisia).

Tyypillisimpiä esimerkkejä monimutkaisista tyypeistä ovat array (kaikki elementit ovat samaa tyyppiä) ja tietue (elementeillä voi olla eri tyyppejä).

Tällaisen jaon suhteellisuutta tulee korostaa: eri ohjelmissa samalla muuttujalla voi olla erilainen rakenne.

Esimerkiksi kääntäjä erottaa 4 kenttää reaalityypin muuttujassa: mantissan ja eksponentin etumerkit sekä niiden arvot, mutta ohjelmaansa kääntävälle ohjelmoijalle reaalimuuttuja on yksi muistisolu, joka tallentaa reaaliluvun.

Muuttujien nimeämiskäytännöt

Katso myös

Muistiinpanot

Linkit