SPEAKER: Laten we een programma schrijven dat vraagt ​​de gebruiker om twee strings en Vervolgens meldt of die strings gelijk of niet gelijk. Ik heb ons al begonnen hier uit door bellen printf tweemaal en bellen Tweemaal getString, het opslaan van de terugkeer waarden van s en t respectievelijk. 

Nu, mijn instinct om te vergelijken deze twee snaren zou de vertrouwde gebruiken gelijkheidsoperator - Als s gelijk gelijk t. Dan ga ik verder en afdrukken gaan uit "Je hebt getypt hetzelfde! Anders, als dat is niet waar, ik ben gewoon gaat printf typen ("Je hebt getypt verschillende dingen! 

Vrij eenvoudig - Ik ben gewoon te vergelijken en tegen t, en als ze gelijk zijn, printen zo veel. Laten we dit programma te compileren en uit te voeren. Maak vergelijken 0. / Vergelijken 0, zeg iets, hello, iets zeggen, hallo. 

Helaas, het programma denkt dat ik heb getypt verschillende dingen, hoewel ik duidelijk getypt "hallo" de dezelfde manier beide keren. Nu, waarom zou dat zijn? 

Nou, het blijkt dat dit alles tijd, hebben snaren een beetje meer geweest complexer dan een reeks tekens onder de motorkap. In werkelijkheid, een string is een pointer of een adres, specifiek dit adres van het eerste teken in dat reeks tekens. 

En dus, als we vergelijken s tegen t met het gelijke gelijk-teken, we zijn eigenlijk vraagt, is dit adres gelijk gelijk naar dit adres? En dat zal niet het geval zijn als de gebruiker in twee verschillende heeft getypt strings en we hebben GetString twee keer gebeld om ze te krijgen, omdat het geheugen dat GetString gebruikt voor het opslaan van de eerste koord zou hier in het RAM, maar de geheugen dat GetString gebruikt om op te slaan de tweede snaar gaat hier in het RAM zijn. En natuurlijk dan die twee stukjes geheugen verschillende adressen hun eerste karakters. 

Dus is s gelijk gelijk naar t? Nou, nee. Als s en t die naar verschillende delen van het geheugen, als ze zouden zijn door roepen GetString twee keer, ze zijn niet, in feite zal hetzelfde zijn. Dus lijkt het het geval dat voor twee strings te vergelijken in de intuïtieve manier die we verwachten, karakter voor karakter, andere techniek hebben we helemaal.