1 00:00:00,000 --> 00:00:00,520 2 00:00:00,520 --> 00:00:03,530 >> SPEAKER: Napišimo program, ki pozove uporabnika, po dveh nizih in 3 00:00:03,530 --> 00:00:07,170 Nato poroča, ali so ti nizi sta enaka ali ni enaka. 4 00:00:07,170 --> 00:00:10,290 Sem nas je že začelo tukaj dvakrat kliče printf in kliče 5 00:00:10,290 --> 00:00:14,520 GetString dvakrat, shranjevanje vrnitev Vrednosti v s in t, v tem zaporedju. 6 00:00:14,520 --> 00:00:17,960 >> Zdaj, moj instinkt za primerjavo teh dveh strune bi bila uporaba poznajo 7 00:00:17,960 --> 00:00:19,160 operator enakosti - 8 00:00:19,160 --> 00:00:22,070 če je enaka enaka t. 9 00:00:22,070 --> 00:00:28,120 Potem sem šel naprej in print out "Vnesli ste isto stvar! 10 00:00:28,120 --> 00:00:35,190 Drugje, če to ni res, jaz sem samo dogaja, da tip printf ("Vnesli 11 00:00:35,190 --> 00:00:37,880 različni stvari! 12 00:00:37,880 --> 00:00:38,850 >> Precej enostavno - 13 00:00:38,850 --> 00:00:41,820 Jaz sem samo s primerjavo s proti t, in če oni enaki, 14 00:00:41,820 --> 00:00:43,250 tiskanje toliko. 15 00:00:43,250 --> 00:00:45,450 Oglejmo pripravijo in vodijo ta program. 16 00:00:45,450 --> 00:00:51,950 Naredite primerjati 0 /. Primerjati 0, nekaj reči, zdravo, 17 00:00:51,950 --> 00:00:54,200 nekaj reči, zdravo. 18 00:00:54,200 --> 00:00:56,870 >> Na žalost program, misli sem vnesli različne stvari, čeprav sem 19 00:00:56,870 --> 00:00:59,530 jasno tipkal "zdravo" enak način, obakrat. 20 00:00:59,530 --> 00:01:00,850 Zdaj, zakaj bi to bilo? 21 00:01:00,850 --> 00:01:03,750 >> No, izkazalo se je, da je vse to Tokrat so strune že malo bolj 22 00:01:03,750 --> 00:01:06,780 zapleteno kot zaporedje znakov Pod pokrovom. 23 00:01:06,780 --> 00:01:11,450 V resnici niz je kazalec ali naslov, zlasti naslov 24 00:01:11,450 --> 00:01:14,640 prvega znaka v tem, da zaporedje znakov. 25 00:01:14,640 --> 00:01:18,640 >> In tako, ko smo primerjali s proti t z enakim enačajem, smo 26 00:01:18,640 --> 00:01:23,200 dejansko sprašuje, ali je to naslov enako enako na ta naslov? 27 00:01:23,200 --> 00:01:26,850 In to se ne bo zgodilo, če Uporabnik je tipkal v dveh različnih 28 00:01:26,850 --> 00:01:30,370 godala in smo poklical GetString dvakrat jih dobili, ker pomnilnik 29 00:01:30,370 --> 00:01:34,480 da GetString uporablja za shranjevanje prvi Niz je lahko tukaj v RAM, vendar 30 00:01:34,480 --> 00:01:37,120 pomnilnika, ki GetString uporablja za shranjevanje Drugi niz se dogaja 31 00:01:37,120 --> 00:01:38,760 biti tukaj v RAM. 32 00:01:38,760 --> 00:01:42,380 In seveda, potem ti kosi Pomnilnik imajo različne naslove 33 00:01:42,380 --> 00:01:44,220 njihovi Prve znake. 34 00:01:44,220 --> 00:01:46,120 >> Tako je s enak enaka ne? 35 00:01:46,120 --> 00:01:46,885 No, no. 36 00:01:46,885 --> 00:01:50,510 Če S in T, ki kažejo na drugačen kose pomnilnika, kot bi se ga 37 00:01:50,510 --> 00:01:54,140 dvakrat kliče GetString, oni ne, Dejstvo je, bo enaka. 38 00:01:54,140 --> 00:01:57,700 Zato se zdi, da se zgodi, da bi primerjavo dveh nizov v intuitivna 39 00:01:57,700 --> 00:02:01,050 tako da pričakujemo, znak za značaj, potrebujemo še eno tehniko 40 00:02:01,050 --> 00:02:02,300 celoti. 41 00:02:02,300 --> 00:02:03,902