Speak: Låt oss skriva ett program som uppmanar användaren att två strängar och sedan rapporterar om dessa strängar är samma eller inte samma. Jag har redan börjat oss här av ringer printf två gånger och ringer GetString två gånger, lagra retur värden i s-och t, ​​respektive. Nu, mina instinkter en jämförelse strängar skulle vara att använda det välbekanta jämlikhet operatören - Om s är lika med lika t. Då kommer jag att gå vidare och skriva ut ut "Du skrev samma sak! Annars, om det inte är sant, jag är helt enkelt kommer att skriva printf ("Du skrev olika saker! Ganska okomplicerad - Jag är helt enkelt att jämföra er mot t, och om de är lika, skriva ut så mycket. Låt oss kompilera och köra programmet. Gör jämför 0. / Jämföra 0, säga något, hej, säga något, hej. Tyvärr tror det program jag har skrivit olika saker, även om jag tydligt skrivit "hej" med samma sätt båda gånger. Nu, varför skulle det vara? Tja, visar det sig att allt detta tid, har strängar varit lite mer komplex än en sekvens av tecken under huven. I verkligheten är en sträng en pekare eller en adress, specifikt adressen för det första tecknet i det sekvens av tecken. Och så när vi jämför s mot t med likhetslikhetstecken, vi är faktiskt frågar, är denna adress lika lika med denna adress? Och det kommer inte att vara fallet om användaren har matat in i två olika strängar och vi har kallat GetString två gånger för att få dem, eftersom minnet att GetString använder för att lagra den första sträng kan vara här i RAM, men det minne som GetString använder för att lagra den andra strängen kommer att vara här i RAM. Och naturligtvis då, dessa två bitar av minnet har olika adresser för deras allra första tecknen. Så är s lika lika till t? Tja, nej. Om s och t är riktade till olika bitar av minnet, eftersom de skulle vara med ringer GetString två gånger, är de inte, i själva verket kommer att vara densamma. Så det verkar vara så att till jämföra två strängar i den intuitiva sätt som vi förväntar oss, tecken för karaktär, behöver vi en annan teknik helt och hållet.