mikä on NULL?

tietämätön koodari

oon koodaillu muutaman vuoden ajan kaikkea hyötyohjelmista peleihin ja monta kertaa oon törmännyt tuohon NULL-sanaan mutten oikein ole vielä sisäistänyt mitä se tarkoittaa ja mihin sitä käytetään. liittyykö se jotenkin osoittimiin? en ole perehtynyt niihin, koska en tajua niistä hevonp:tä.

12

5458

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • koodari

      siis niinku 0

      eli kun sinulla on yksi omena ja sitten syöt yhden omenan sinulle jää NULL omenaa.

      • teuro

        Kun olet syönyt kaikki omenat sinulla ei ole NULL omenaa vaan nolla omenaa. NULL on määrittelemätön ei siis sama asia kuin nolla. Ajatellaan muuttujaa x määritellään se vaikkapa intiksi int x = 0; nyt x siis on määritelty ja sen arvo on nolla. Sen sijaan int x = NULL; ei ole sama asia kuin nolla. Jos muuttuja määritellään näin ei sen sisällöstä voida olla varmoja.

        Jos taasen käytetään määrittelemätöntä muuttujaa esim c - ohjelmissa kääntäjä kiukuttelee NULL muuttujasta, koska muuttujaa ei ole määritelty.


      • jos pilkkua viilataan
        teuro kirjoitti:

        Kun olet syönyt kaikki omenat sinulla ei ole NULL omenaa vaan nolla omenaa. NULL on määrittelemätön ei siis sama asia kuin nolla. Ajatellaan muuttujaa x määritellään se vaikkapa intiksi int x = 0; nyt x siis on määritelty ja sen arvo on nolla. Sen sijaan int x = NULL; ei ole sama asia kuin nolla. Jos muuttuja määritellään näin ei sen sisällöstä voida olla varmoja.

        Jos taasen käytetään määrittelemätöntä muuttujaa esim c - ohjelmissa kääntäjä kiukuttelee NULL muuttujasta, koska muuttujaa ei ole määritelty.

        Siis kyllähän se NULL on määritetty nollaksi (#define NULL 0). Eli jos sitä käsitellään numeeristen primitiivityyppien kanssa niin samaa asiaa se tarkoittaa. Sen sijaan "null" on varattu sana, jolla alustetaan/invalidoidaan/whatever osoitin, ja jota voi käyttää vain osoittimien kanssa.


      • teuro
        jos pilkkua viilataan kirjoitti:

        Siis kyllähän se NULL on määritetty nollaksi (#define NULL 0). Eli jos sitä käsitellään numeeristen primitiivityyppien kanssa niin samaa asiaa se tarkoittaa. Sen sijaan "null" on varattu sana, jolla alustetaan/invalidoidaan/whatever osoitin, ja jota voi käyttää vain osoittimien kanssa.

        NULL on ihan oikeasti mitätön / määrittelemätön. Se että asia definellä määritelty vastaamaan nollaa on ihan eri asia kuin NULL. Voidaanhan mitä tahansa määritellä definellä vaikkapa #define infinity 854;
        tällöin ääretön olisi 854. Itse puhun nyt käsitteistä en jonkin ohjelmointikielen sisäisistä rakenteista.


      • Juuba
        jos pilkkua viilataan kirjoitti:

        Siis kyllähän se NULL on määritetty nollaksi (#define NULL 0). Eli jos sitä käsitellään numeeristen primitiivityyppien kanssa niin samaa asiaa se tarkoittaa. Sen sijaan "null" on varattu sana, jolla alustetaan/invalidoidaan/whatever osoitin, ja jota voi käyttää vain osoittimien kanssa.

        Joskus NULL voi olla ihan muuta kuin numero nolla. Jos joku järjestelmä ei käytä numeroa nolla koskaan, niin järkevää on valita NULL siitä järjestelmän käyttämien numeroiden alusta tai keskivaiheilta.


    • NULLin

      NULLia käytetään, kun halutaan nollata osoitin. Yleensä sitä käytetään:
      - paluuarvona osoittamaan, että joku asia meni pieleen
      - näyttämään, että osoitin on alustamatta

      Aikas outoo että oot selvinny ilman osoittimien ymmärrystä, meinaan niitähän vilisee joka paikassa.
      Kieltämäti useissa teoksissa pointterien käyttö on neuvottu niin mutkikkaasti ettei niistä tajua mitään. Aika helppoja tajuttavia ne kuiteski on.

    • ratkaisee
    • ..N U L L...

      ..null/nil on määrittelemätön arvo, yksinkertaisesti.

    • Multimeedio

      eli universaali eli täysin järjestelmäriippumaton nolla: nythän on hyvinkin pitkälti niin, että ohjelmoijalla eikä sen ohjelman käyttäjälläkään ole eikä tarvitsekaan olla mitään käsitystä siitä, kuinka sitä ohjelmaa pyörittävä järjestelmä eli se kone sen nollankin kulloinkin tulkitsee eli näkee eli mitä lukua se kone pitää sisällänsä nollana, joten täytyy olla jokin keino kertoa sille koneelle, että nyt tarkoitetaan sitä koneenkin nollaa eli NULL: ia, koska kaikki muut luvuthan esitetään sen koneenkin sisällä suhteessa nimenomaisesti siihen konenollaan eli NULL: iin, jolloin phutaan sen koneen sisä- ja ulkopuolella samoista luvuista, vaikka ne saattaisivat näyttää täysin eriltä, mikäli ne voitaisiin kirjoittaa vierekkäin siihen niin esim näytölle taikka muistivihkoon. Siinä on kyse sopimuksesta.

    • Anonyymi

      Mäki haluisin tietää mikä on NULL

      • Anonyymi

        Linuxin manuaalisivulta:
        #include <stddef.h>

        #define NULL ((void *) 0)

        Tuossapa tuo. Kuten näkyy, se ei ole pelkästään nolla vaan void-osoitin, joka on alustettu nollaksi. Typecastin avulla estetään, ettei arvoa voi sijoittaa muuhun kuin osoitintyyppiin ja silloinkin joutuu tekemään oikean typecastin. Tämä helpottaa koodin pitämistä siistinä.


      • Anonyymi

        Se tarkoittaa joko "ei yhtään mitään" tai että "ei viitettä" tms.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Mitään järkeä?

      Että ollaan erillään? Kummankin pää on kovilla.
      Ikävä
      120
      1777
    2. Noniin rakas

      Annetaanko pikkuhiljaa jo olla, niin ehkä säilyy vienot hymyt kohdatessa. En edelleenkään halua sulle tai kenellekään mi
      Ikävä
      99
      1598
    3. Lasten hyväksikäyttö netissä - Joka 3. nuori on saanut seksuaalisen yhteydenoton pedofiililtä

      Järkyttävää! Lapsiin kohdistuva seksuaalinen hyväksikäyttö verkossa on yhä pahempi ongelma. Ulkolinja: Lasten hyväksikäy
      Maailman menoa
      48
      1119
    4. Kumpi vetoaa enemmän sinuun

      Kaivatun ulkonäkö vai persoonallisuus? Ulkonäössä kasvot vai vartalo? Mikä luonteessa viehättää eniten? Mikä ulkonäössä?
      Ikävä
      44
      1010
    5. Multa sulle

      Pyörit 24/7 mielessä, kuljet mun mukana, mielessä kyselen sun mielipiteitä, vitsailen sulle, olen sydän auki, aitona. M
      Ikävä
      29
      939
    6. Nainen, olen tutkinut sinua paljon

      Salaisuutesi ei ole minulle salaisuus. Ehkä teimme jonkinlaista vaihtokauppaa kun tutkisimme toisiamme. Meillä oli kumm
      Ikävä
      50
      866
    7. Mies, eihän sulla ole vaimoa tai naisystävää?

      Minusta tuntuu jotenkin, että olisit eronnut joskus, vaikka en edes tiedä onko se totta. Jos oletkin oikeasti edelleen s
      Ikävä
      46
      838
    8. Olet myös vähän ärsyttävä

      Tuntuu, että olet tahallaan nuin vaikeasti tavoiteltava. En tiedä kauanko jaksan tätä näin.
      Ikävä
      37
      790
    9. Okei nyt mä ymmärrän

      Olet siis noin rakastunut, se selittää. Onneksesi tunne on molemminpuolinen 😘
      Ikävä
      56
      788
    10. Onko sulla empatiakykyä?

      Etkö tajua yhtään miltä tämä tuntuu minusta? Minä ainakin yritän ymmärtää miltä sinusta voisi tuntua. En usko, että olet
      Ikävä
      37
      760
    Aihe