Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

Pointer auf Pointer

Hey Leute
hier kommt erst mal der Quellcode...

#include<stdio.h>
char *c[] = { "ENTER", "NEW", "POINT", "FIRST"};
char **cp[] = { c+3, c+2, c+1, c};
char ***cpp = cp;

main()
{
     printf("%s", **++cpp);
     printf("%s", *--*++cpp+3);
     printf("%s", *cpp[-2]+3);
     printf("%s", cpp[-1][-1]+1);
     return 0;
}
Jetz soll herausgefunden werden, was das Programm macht.
Was es tut ist mir klar und die Ausgabe erscheint mir auch logisch.
Mein Problem ist, dass ich nicht verstehe warum z.B.  in der zweiten printf Anweisung die ersten drei Stellen ignoriert werden. Warum wird die +3 am Ende nicht gleich zu cpp noch dazugezählt? Wäre meiner Meinung nach logischer.
Vielleicht könnt Ihr mir ja helfen.
Danke im Vorraus

P.S. Nein das Programm hat keinen großartigen Sinn    


Antworten zu Pointer auf Pointer:

Kleiner Tipp: Füge mal ein paar Klammern ein ;-)

2 Wörter :

"operator precedence" siehe Link hier

Wenn du nach der Operator Tabelle gehst, müsstest du (im Kopf) die Klammern so setzten :

printf("%s", *(*(++cpp)));
printf("%s", (*(--(*(++cpp))))+3);
printf("%s", (*(cpp[-2]))+3);
printf("%s", ((cpp[-1])[-1])+1);

« QuickBASICftp mit php »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Quellcode
Ein Quellcode, auch als Quelltext bekannt, bezeichnet den unkompilierten Programm-Code einer Software. Quell- oder Programm-Code ist der auch für Menschen lesbare Co...

Newsgroup
Newsgroup (Englischer Begriff für "Nachrichtengruppe") und meint eine Diskussionsforum im Internet, das wie ein "schwarzes Brett" funktioniert, an dem Nachrichten ve...

Powerpoint
PowerPoint ist eine Präsentations-Software der Microsoft Corporation und hat die Dateiendung ppt. Das am Häufigsten verwendete Programm zum Erstellen von Pr&aum...