SPEAKER: Lad os skrive et program, beder brugeren om to strygere og derefter rapporterer om disse strings er de samme eller ikke det samme. Jeg har allerede startede os her ved kalder printf to gange og ringer GetString to gange, lagring tilbagevenden værdier i s og t, hhv. 

Nu, at mine instinkter sammenligne disse to strenge ville være at bruge den velkendte lighed operatør - hvis s er lig lig t. Så jeg har tænkt mig at gå videre og udskrive out "Du har skrevet det samme! Else, hvis det ikke er sandt, jeg er simpelthen kommer til at skrive printf ("Du har indtastet forskellige ting! 

Forholdsvis ligetil - Jeg blot at sammenligne s mod t, og hvis de er lige, udskrivning ud så meget. Lad os kompilere og køre dette program. Foretag sammenligne 0. / Sammenligne 0, sige noget, hallo, sige noget, hej. 

Desværre programmet tror jeg har indtastet forskellige ting, selvom jeg tydeligt skrevet "hello" den samme måde begge gange. Nu, hvorfor kan det være? 

Tja, det viser sig, at alt dette tid har strenge været lidt mere kompleks end en sekvens af tegn under hætten. I virkeligheden er en streng en pegepind eller en adresse, specifikt adresse det første tegn på, at sekvens af tegn. 

Og så når vi sammenligner s mod t med lige lighedstegnet, er vi faktisk beder, er denne adresse lig lige til denne adresse? Og det kommer ikke til at være tilfældet, hvis brugeren har indtastet i to forskellige strygere og vi har kaldt getString to gange at få dem, fordi hukommelsen at getString bruger til at lagre den første streng kunne være her i RAM, men den hukommelse, getString bruger til at lagre den anden streng går at være her i RAM. Og selvfølgelig, så de to bidder af hukommelse har forskellige adresser for deres allerførste tegn. 

Så er s lig lige til t? Nå, nej. Hvis s og t peger på forskellige bidder af hukommelsen, da de ville være med ringer getString to gange, de ikke er, i virkeligheden, vil være den samme. Så det lader til at være tilfældet, at til sammenligne to strenge i den intuitive måde, at vi forventer, karakter for karakter, har vi brug en anden teknik helt.