SPRECHER: Lassen Sie uns ein Programm schreiben, dass fordert den Benutzer für zwei Zeichenfolgen und berichtet dann, ob diese Zeichenfolgen sind gleich oder nicht gleich sind. Ich habe bereits hier von uns begann zweimaligen Aufruf printf und Aufrufen GetString zweimal, Speichern des Rück Werte in s bzw. t. Nun, meine Instinkte, diese beiden vergleichen Saiten wäre das vertraute zu bedienen Gleichheitsoperator - wenn s gleich t entspricht. Dann werde ich nach vorne gehen und drucken out "Sie gaben die gleiche Sache! Else, bin ich, wenn das ist einfach nicht wahr printf geben werde ("Sie getippt verschiedene Dinge! Ziemlich einfach - Ich bin einfach vergleichen s gegen t, und wenn sie gleich sind, Drucken Sie so viel. Lassen Kompilieren und Ausführen dieses Programms. Machen Sie vergleichen 0. / Vergleichen 0, etwas sagen, hallo, etwas sagen, hallo. Leider denkt, das Programm habe ich eingegeben verschiedene Dinge, auch wenn ich klar typisiert "Hallo" die gleiche Weise beide Male. Nun, warum könnte das sein? Nun stellt sich heraus, dass dies alles Zeit haben die Saiten ein bisschen mehr gewesen komplexer als eine Folge von Zeichen unter der Haube. In Wirklichkeit ein String ist ein Zeiger oder Adresse, nämlich die Adresse das erste Zeichen, dass Folge von Zeichen. Und so, wenn wir vergleichen, s gegen t mit dem Gleichheitszeichen gleich, wir sind tatsächlich fragen, ist diese Adresse gleich gleich an diese Adresse? Und das wird nicht der Fall sein, wenn der Benutzer in zwei verschiedenen typisierten Saiten und wir haben zweimal aufgerufen GetString um sie zu bekommen, weil der Speicher dass GetString verwendet, um den ersten zu speichern String könnte hier im RAM, aber die Speicher, der GetString verwendet, um zu speichern der zweite String wird hier im RAM sein. Und dann natürlich diese beiden Stücke von Speicher unterschiedliche Adressen für ihre erste Zeichen. So ist s gleich gleich t? Nun, nein. Wenn s und t sind verschiedenen Zeige Stücke der Erinnerung, wie sie von sein Aufruf GetString zweimal, sind sie nicht, In der Tat würde die gleiche sein. So scheint es so zu sein, dass, um Vergleich von zwei Zeichenfolgen in der intuitiven Weise, die wir erwarten, Charakter für Charakter, brauchen wir eine andere Technik insgesamt.