wo liegt hier denn der Unterschied??



  • Hallo,
    Hab mir grad ein wenig die C++-Grammik angeschaut und dabei festgestellt, daß man auch folgendes schreiben kann:

    int * const * x;
    

    wo liegt da der Unterschied zu

    const int** x;
    

    , der Compiler motzt
    auf jeden Fall, wenn ich die beiden Versionen einander zuweise...

    Interessiert mich grad mal, vielleicht kennt ja jmd den Unterschide



  • Also

    const int ** x;
    

    Ist ein Zeiger auf einen "normalen" Zeiger der auf eine konstante int-Variable zeigt.
    Also auf Sachen wie z.B.

    const int* y;
    

    was widerum auf etwas wie z.B.

    const int var = 5;
    

    zeigen könnte.

    int * const * x;
    

    Hingegen ist ein Zeiger der auf einen konstannten Zeiger zeigt welcher auf eine normale int-Variable zeigt.
    Also auf Sachen wie z.B.

    int *const y = &var; // <-- Initialisierung muss stattfinden, da an konstante Zeiger nichts zugewiesen werden kann.
    

    Wobei "var" etwas sein könnte wie z.B.

    int var = 5;
    

Anmelden zum Antworten