SPEAKER: Napišimo program, ki pozove uporabnika, po dveh nizih in Nato poroča, ali so ti nizi sta enaka ali ni enaka. Sem nas je že začelo tukaj dvakrat kliče printf in kliče GetString dvakrat, shranjevanje vrnitev Vrednosti v s in t, v tem zaporedju. 

Zdaj, moj instinkt za primerjavo teh dveh strune bi bila uporaba poznajo operator enakosti - če je enaka enaka t. Potem sem šel naprej in print out "Vnesli ste isto stvar! Drugje, če to ni res, jaz sem samo dogaja, da tip printf ("Vnesli različni stvari! 

Precej enostavno - Jaz sem samo s primerjavo s proti t, in če oni enaki, tiskanje toliko. Oglejmo pripravijo in vodijo ta program. Naredite primerjati 0 /. Primerjati 0, nekaj reči, zdravo, nekaj reči, zdravo. 

Na žalost program, misli sem vnesli različne stvari, čeprav sem jasno tipkal "zdravo" enak način, obakrat. Zdaj, zakaj bi to bilo? 

No, izkazalo se je, da je vse to Tokrat so strune že malo bolj zapleteno kot zaporedje znakov Pod pokrovom. V resnici niz je kazalec ali naslov, zlasti naslov prvega znaka v tem, da zaporedje znakov. 

In tako, ko smo primerjali s proti t z enakim enačajem, smo dejansko sprašuje, ali je to naslov enako enako na ta naslov? In to se ne bo zgodilo, če Uporabnik je tipkal v dveh različnih godala in smo poklical GetString dvakrat jih dobili, ker pomnilnik da GetString uporablja za shranjevanje prvi Niz je lahko tukaj v RAM, vendar pomnilnika, ki GetString uporablja za shranjevanje Drugi niz se dogaja biti tukaj v RAM. In seveda, potem ti kosi Pomnilnik imajo različne naslove njihovi Prve znake. 

Tako je s enak enaka ne? No, no. Če S in T, ki kažejo na drugačen kose pomnilnika, kot bi se ga dvakrat kliče GetString, oni ne, Dejstvo je, bo enaka. Zato se zdi, da se zgodi, da bi primerjavo dveh nizov v intuitivna tako da pričakujemo, znak za značaj, potrebujemo še eno tehniko celoti.