2016-04-11 2 views
0

i diesen Code sah:mir erklären, was hier geschieht [c Zeichen-Array + integer]

#include <stdio.h> 

int main() 
{ 
    char string[] = "  *  *  ** * * * *"; 
    int line = 6, stop = 0, len = 8; 
    for(line = 6; line > 0;line--){ 
     printf("%.*s\n", len, string + stop); 
     stop = stop + len; 
     --len; 
    } 
    return 0; 
} 

String ist ein Zeichen-Array, ist Stopp eine ganze Zahl. Wie wählt%. * s aus, was gedruckt werden soll? das löschte ein Häkchen von Starts gemacht:

 * 
     * 
    * 
* * 
* * 
    * 
+1

Es gibt nur sechs Iterationen in dieser Schleife und zwei sich ändernde Variablen während dieser Schleifenperiode, etwas, von dem ich erwarte, dass ein Bleistift und etwas Papier bei der Ausarbeitung helfen könnte. – WhozCraig

+1

Das '%. * S'-Format besagt, dass maximal die len Zeichen des String-Arguments gedruckt werden sollen. 'string + stop' liefert das string-Argument, das bei offset' stop' vom Anfang von 'string' beginnt. Dies sollte Ihnen vollständige Informationen darüber geben, wie C und die stdio-Bibliothek damit umgehen. Der Rest läuft nur durch die Schleifeniterationen. –

+0

danke, meine Frage war hauptsächlich, dass String ist ein Zeichen-Array und Stop ist eine ganze Zahl. Wir führen Addition + hier ... wie? –

Antwort

1

diesen Code Versuchen Sie, und es wird helfen, zu erklären, was los ist ...

include <stdio.h> 
int main(void) { 
    char string[] = "  *  *  ** * * * *"; 
    int line = 6, stop = 0, len = 8; 
    for(line = 6; line > 0;line--){ 
     printf("print %d chars starting at position %d\n", len, stop); 
     printf("%.*s\n", len, string + stop); 
     stop = stop + len; 
     --len; 
    } 
    return 0; 
} 

Im printf Format dh %.*s die .* bedeutet, dass Es erwartet ein Argument len in Ihrem Fall, um anzugeben, wie viele Zeichen gedruckt werden sollen. Die gibt an, wo mit dem Drucken begonnen werden soll. Ich weiß nicht, wer dieses Stück Code geschrieben hat, aber es ist ein anständiges Beispiel für die Präzision bei Streichern.

Verwandte Themen