>> 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.