char *p
zeigt zuerst auf das erste Zeichen der Zeichenfolge Hello World
. Die Anweisung p++
ändert den Zeiger p
, um auf das zweite Zeichen der Zeichenfolge zu zeigen. Dies erklärt, dass Sie erhalten ello world
, wenn Sie die Zeichenfolge mit Zeiger nach Inkrementieren drucken.
Wenn Sie den Zeiger einem Zeiger q
zuweisen, der ein Zeiger auf int ist. Das Inkrementieren des Zeigers q
ändert den Zeiger, um auf world
zu zeigen (es zeigt auf das Leerzeichen). Es ist aufgrund der Tatsache, dass int
ist 4 Bytes lang in Ihrer Maschine und inkrementieren einen Zeiger auf int, erhöht den Zeiger Inhalt von 4 Bytes. Wenn Sie eine Zeichenfolge mit Zeiger q
drucken, druckt es daher world
.
@Jonny Henly Sie erkennen, dass die Ausgabe nicht auf 2 Zeilen sein wird, weil keine neue Zeile, und dass der eigentliche Raum vor der zweiten "Welt" wichtig ist? – AntonH
@AntonH Habe nicht gemerkt, dass vor "Welt" ein Platz war, mein Fehler. Aber "\ n% s \ n% s" 'hat 2 Zeilenumbrüche. –
@JonnyHenly Mein Fehler dann. Wir hatten beide Recht, eine Sache, du die Newline, ich den Platz :) – AntonH