Pointer!! HILFE! :)



  • Welche Ausgaben macht das folgende Programm??
    Diese Pointer verwirren mich gerade sehr!

    Ich wär euch für Hilfe dankbar!!

    LG
    Ines

    #include <stdio.h>

    Char *c[] = {„ENTER“, „NEW“, „POINT“, „FIRST“};
    Char **cp[] = {c+3, c+2, c+1, c};
    Char ***cpp[]=cp;

    Int main (void)
    {
    Anweisung Ausgabe Erklärung
    Printf(“%s”,**++cpp);
    Printf(“%s”,--++cpp+3);
    Printf(“%s”,*cpp[-2]+3);
    Printf(“%s\n”,cpp[-1][-1]+1);
    return 0;
    }



  • 1.) Wieso probierst du es nicht aus? bzw. fragst warum es sich nicht compilieren laesst?

    2.) Sollte man Quellcode nicht mit Word oder so schreiben, da werden Formatierungen durchgefuehrt (zb. die Anfuehrungszeichen), die es nicht geben darf.



  • Ich weiß, es läuft nicht 😞

    weiß keiner, was da bei den 4 Anweisungen ausgegeben werden könnt?

    Beim ersten POINTER, oder?

    Danke
    Ines



  • so läufts..

    #include <stdio.h> 
    
    char *c[] = {"ENTER", "NEW", "POINT", "FIRST"}; 
    char **cp[] = {c+3, c+2, c+1, c}; 
    char ***cpp=cp; 
    
    int main (void) 
    { 
        printf("%s",**++cpp); 
        printf("%s",*--*++cpp+3); 
        printf("%s",*cpp[-2]+3); 
        printf("%s\n",cpp[-1][-1]+1); 
        return 0; 
    }
    

    nettes programm...

    gehe einfach mal eins nach dem anderen durch und male es dir auf...



  • was bewirken denn die Minus-Zahlen bei den Arrayelementsangaben?:
    printf("%s",*cpp[-2]+3);
    printf("%s\n",cpp[-1][-1]+1);



  • ninette111 schrieb:

    was bewirken denn die Minus-Zahlen bei den Arrayelementsangaben?

    Das gleiche wie 'plus Zahlen' nur eben umgekehrt.



  • Shade Of Mine schrieb:

    Das gleiche wie 'plus Zahlen' nur eben umgekehrt.

    Also von hinten angefangt zu zählen, oder welches ist das Element x[-2] aus dem Array x[]={1, 2, 3, 4, 5}??



  • achtung:

    die sachen beziehen sich aufeinander...

    wie gesagt: mal dir den speicher auf, sonst kommst du schwer durch.

    hier mal eine eindeutigere ausgabe

    test **++cpp:                   POINT
    test **--*++cpp+3:              ER
    test *cpp[-2]+3:                ST
    test cpp[-1][-1]+1:             EW
    

    ps: ohne gewähr, weil ich an deinem ursprungsprogramm rumeditieren musste, weil ein dicker fehler drin war, und ich nun nicht weiß, wie deine ursprungshausaufgabe war 😉


Log in to reply