ich diese Frage als eine Klasse Übung gefragt:Printf und Array
int A[] = {1,3,5,7,9,0,2,4,6};
printf("%d\n", *(A+A[1]-*A));
Ich kann es nicht herausfinden, auf dem Papier, so gingen voran ein einfaches Programm zu kompilieren und es getestet und festgestellt, dass printf("%d",*A)
gibt immer Ich 1
für die Ausgabe.
Aber ich verstehe immer noch nicht, warum das der Fall ist, daher wäre es großartig, wenn jemand das erklären könnte.
@abelenky ausgewertet wird: das Ergebnis '1' ist von 'printf ("% d \ n", * A)', das ist was du erwartest, glaube ich. Der ursprüngliche Code würde jedoch "5" erzeugen. Die Frage ist irreführend. –
@abelenky: Steve0101 hat Recht, printf ("% d \ n", * A) druckt immer 1 für das angegebene Array. – babon
Ja, ich habe es falsch gelesen und dachte, er würde 1 für die Ausgabe des größeren Ausdrucks bekommen. Es tut uns leid. Immer noch, Link zu IDEOne, als eine gute Möglichkeit, [MVCE-Code] zu teilen (http://ideone.com/4fu3Sj) – abelenky