Mis on nullmärk?

Nullmärk arvutiprogrammeerimises on märk, mille väärtus on null. See erineb numbrist null, mis on osa standardsest trükitud märgistikust. Null on tegelikult juhtmärk, mille indeks on null. Seda kasutatakse näitamaks, et muutuja, klass või osuti on tühi, määratlemata või initsialiseerimata. Nulli kasutatakse ka C-programmeerimiskeeles märgijada lõpu tähistamiseks.

Nullmärk oli algselt üks spetsiaalsetest juhtmärkidest, mida kasutati välisriistvaraga (nt printerite või lindiseadmetega) suhtlemiseks. Nulli algne tähendus oli anda seadmele käsk mitte midagi teha. Kuna tehnoloogia muutus keerukamaks, oli välisseadmetega liidestamiseks vähem vaja juhtmärke. Null jäi enamikus märgikomplektides siiski positsioonile null.

Paljud programmeerimiskeeled kasutavad nullmärki, et näidata, et muutujale, osutile või klassile pole väärtust määratud. Nullväärtus on programmeerimiskeele põhiteekides sageli määratletud kui väärtus ‘/0’, mis tõlgitakse üheks tühjaks märgiks. Muutujal, mille väärtus on null, ei ole nulli väärtust. Null on täiesti erinev märgikood, nii et nulli ja nulli vahelise samaväärsuse testid näitavad vale tulemust. See on kavandatud, sest null võib olla muutuja kehtiv väärtus.

Programmeerimiskeel, mida tuntakse nimega C, kasutab mäluruumi säästmiseks suurepäraselt nullmärki. Nullmärki kasutatakse märgistringi lõpuna, mida nimetatakse ka nulliga lõppenud stringiks. See võimaldab programmil salvestada stringi, mille jaoks on nullterminaatori hoidmiseks vaja ainult ühte lisabaiti. Nullmärki ei saanud kuvada ja seda ei kasutatud muuks otstarbeks, nii et see süsteem töötas hästi.

Keeled, mis tulid pärast C-d, hakkasid kasutama nulli uute muutujate ja klasside lähtestamiseks. Enamik keele spetsifikatsioone garanteerib tegelikult, et äsja deklareeritud muutujad on nulliga võrdsed. Samamoodi saab muutujatele määrata väärtuse null, mis näitab, et neil pole väärtust või et nad ei osuta ühelegi mälukohale.

Teatud objektorienteeritud keeled võivad prügikoristusprotsessi ajal kasutada nullmärki. Kui klassi eksemplari sisaldav muutuja on seatud nulliks, muutuvad andmed kättesaamatuks, kui mõni muu muutuja ei viita teisiti. Prügikogumismehhanism, mis vabastab varem kasutatud mälu, tuvastab praegu kättesaamatud andmed ja tagastab need saadaolevasse mälukogumisse. Muutuja selgesõnalist nullile määramist peetakse mõnikord halvaks programmeerimisstiiliks.