if (NULL) true



  • hallo, ich bin neu in c++. Ich habe gerade gelesen, dass if (eine zahl) immer true ist wenn die zahl != 0 ist. Ist die Bediongung auch immer true wenn ich einer Zeiger reingebe. Also z.b

    meinObject *stueck;
    
    stueck = getStueck("name des stückes"); // wenn nicht existent dann NULL
    if (stueck)print("Ja");
    else print("nein");
    

    Klappt das immer?



  • Ja, auch bei Zeigern sind if(stueck) und if(stueck!=0) gleich.



  • ich meinte eig ob auch if (stueck!=NULL) mit if (stueck) ausgedrückt wird?

    Danke



  • hans_g schrieb:

    ich meinte eig ob auch if (stueck!=NULL) mit if (stueck) ausgedrückt wird?

    Danke

    Ja, sorum ist es auch gleich. Und bei Zeigern sind 0 und NULL und nullptr gleich.



  • ah okay danke. Ich habe dedacht das NULL nur ein Makro ist und der Compiler für die jeweilige Plattform den Nullzeigerwert einsetzt. Aber wenn das immer 0 ist , ists auch gut 🙂



  • hans_g schrieb:

    ah okay danke. Ich habe dedacht das NULL nur ein Makro ist und der Compiler für die jeweilige Plattform den Nullzeigerwert einsetzt. Aber wenn das immer 0 ist , ists auch gut 🙂

    Richtiger Gedanke.
    In C++ ist der Trick die Zahl 0, wenn man sie in einem Zeigerkontext verwendet. Sie wird durch den Nullzeigerwert auf der jeweiligen Plattform ersetzt. Das macht der Compiler. Daher ist es so, daß das Makro NULL immer die 0 ist.


Log in to reply