Verstehe den Quellcode nicht

Mickeyman

Mitglied
Ich habe vor kurzem eine Aufgabe bekommen, in der ich erklären soll, wie dieser Quellcode funktioniert und was er macht. Leider hab ich da keine Ahnung und ich hab auch keinen den ich fragen könnte, da ja Ferien sind.

Hier ist der Quellcode:

Code:
int x=1, xX[25]={}, *X;

main() {
       
  for((x=1); ++x<=0X63;) {
    ;
    for(X=xX; *X&&x%*X; X++);
    *X||scanf("%Xi\\X-Mas",*X=x);
  }
;
}

scanf(X,x) {
  ;
  for(X=1<<15; putchar(X?X&x?'!':'.':'\n'), X; X>>=1) 
    24;
}

Ich verstehe da so viel nicht, wie zum Beispiel in Zeile 7. Dort steht " *X&&x%*X " aber ich hab keine Ahnung was das macht. Auch in Zeile 15 weiß ich nicht, was "<<" oder ">>=" bewirkt. Auch die Übergabeparameter von putchar verstehe ich nicht.

Ich hoffe mir kann da jemand helfen.
Mickeyman
 
Natürlich könnte Dir hier jemand genau sagen, was da wann passiert, damit wäre allerdings das Ziel der Aufgabe völlig verfehlt. Auch du hättest nichts davon, da Du immer noch nicht verstanden hättest, wie C funktioniert.
Du solltest also ersmal nachschlagen, was die Operatoren '&&', '%', '<<', '>>=' tun, was '\' in einem String bedeutet und etwas über Operatorenvorrang lesen.
Wenn Du allerdings schon mit
Code:
int x=1, xX[25]={}, *X;
nichts anfangen kannst, dann ist das nicht so gut.
Ich muß zugeben, das ist ein tricky Code, der einige spezielle Eigenheiten von C verwendet, aber die Aufgabe ist durchaus lösbar.
 
Zurück