Frage |
Warum ist der Vergleich p_string == "Irgendetwas"falsch, obwohl p_stringein Zeiger auf char ist, der auf eine Zeichenkette mit dem Inhalt "Irgendetwas" zeigt?
Antwort |
Ein Vergleich mit
==
ist dann wahr, wenn die beiden verglichenen Operanden gleich sind. In diesem Fall sind die beiden Operanden Zeiger auf char. Diese sind dann gleich, wenn sie auf die gleiche Stelle im Speicher zeigen. Wenn an den beiden verschiedenen Stellen, auf die die beiden Zeiger zeigen, der gleiche Inhalt steht sind die Zeiger nicht gleich.
Wenn Zeichenketten nach dem Inhalt verglichen werden sollen ist dazu die Funktion strcmp() aus der C-Standardbibliothek geeignet. Sie liefert den Wert 0 zurueck, wenn sich die beiden übergebenenen Zeichenketten nicht unterscheiden.
|
Diskussion |