1 00:00:00,000 --> 00:00:00,520 2 00:00:00,520 --> 00:00:03,530 >> SPEAKER: Pieņemsim uzrakstīt programmu, kas liek lietotājam divām stīgām un 3 00:00:03,530 --> 00:00:07,170 Pēc tam ziņo, vai šie stīgas ir vienādi vai nav vienādi. 4 00:00:07,170 --> 00:00:10,290 Esmu jau sācis mums off šeit zvanot printf divreiz un aicinot 5 00:00:10,290 --> 00:00:14,520 GetString divreiz, uzglabājot atgriešanos vērtības s un t, attiecīgi. 6 00:00:14,520 --> 00:00:17,960 >> Tagad, mani instinkti, lai salīdzinātu šos divus stīgas būtu izmantot pazīstami 7 00:00:17,960 --> 00:00:19,160 vienlīdzība operators - 8 00:00:19,160 --> 00:00:22,070 ja s vienāds vienāds t. 9 00:00:22,070 --> 00:00:28,120 Tad es iešu uz priekšu un izdrukāt out "Tu ievadījis pats! 10 00:00:28,120 --> 00:00:35,190 Cits, ja tas nav taisnība, es esmu vienkārši gatavojas rakstīt printf ("Jūs drukāti 11 00:00:35,190 --> 00:00:37,880 dažādas lietas! 12 00:00:37,880 --> 00:00:38,850 >> Diezgan vienkārši - 13 00:00:38,850 --> 00:00:41,820 Es esmu vienkārši salīdzinot s pret t, un, ja viņi ir vienādi, 14 00:00:41,820 --> 00:00:43,250 izdrukāt tik daudz. 15 00:00:43,250 --> 00:00:45,450 Pieņemsim apkopot un palaist šo programmu. 16 00:00:45,450 --> 00:00:51,950 Padarīt salīdzināt 0. / Salīdzinātu 0, kaut ko pateikt, hello, 17 00:00:51,950 --> 00:00:54,200 pateikt kaut ko, sveiki. 18 00:00:54,200 --> 00:00:56,870 >> Diemžēl programma domā, ka es esmu drukāti dažādas lietas, kaut arī es 19 00:00:56,870 --> 00:00:59,530 skaidri rakstīts "hello" Tāpat abas reizes. 20 00:00:59,530 --> 00:01:00,850 Tagad, kāpēc varētu būt? 21 00:01:00,850 --> 00:01:03,750 >> Nu, izrādās, ka tas viss laiks, stīgas ir nedaudz vairāk 22 00:01:03,750 --> 00:01:06,780 Komplekss nekā rakstzīmju secību zem motora pārsega. 23 00:01:06,780 --> 00:01:11,450 Patiesībā, virkne ir rādītājs, vai adrese, īpaši adresi 24 00:01:11,450 --> 00:01:14,640 pirmā rakstura ka rakstzīmju secība. 25 00:01:14,640 --> 00:01:18,640 >> Un tad, kad mēs salīdzinām s pret t ar vienādības vienādības zīmi, mēs esam 26 00:01:18,640 --> 00:01:23,200 faktiski jautā, vai šī adrese vienāda vienādam ar šo adresi? 27 00:01:23,200 --> 00:01:26,850 Un tas nav būs gadījumā, ja lietotājs ir ievadījis divās dažādās 28 00:01:26,850 --> 00:01:30,370 stīgas, un mēs esam sauc GetString divreiz , lai iegūtu to, ka atmiņas 29 00:01:30,370 --> 00:01:34,480 ka GetString izmanto, lai saglabātu pirmo virkne varētu būt šeit RAM, bet 30 00:01:34,480 --> 00:01:37,120 atmiņa, kas GetString izmanto, lai saglabātu otro string notiek 31 00:01:37,120 --> 00:01:38,760 būt šeit RAM. 32 00:01:38,760 --> 00:01:42,380 Un, protams, tad šie divi gabalos Atmiņas ir dažādas adreses 33 00:01:42,380 --> 00:01:44,220 to ļoti pirmās rakstzīmes. 34 00:01:44,220 --> 00:01:46,120 >> Tā ir s vienāds vienāds ar t? 35 00:01:46,120 --> 00:01:46,885 Nu, nē. 36 00:01:46,885 --> 00:01:50,510 Ja s un t ir vērsti uz dažādām gabalos atmiņas, kā tas būtu, ko 37 00:01:50,510 --> 00:01:54,140 zvana GetString divreiz, viņi nav, Faktiski, būs vienādi. 38 00:01:54,140 --> 00:01:57,700 Tātad tas, šķiet, ir gadījums, ka, lai salīdzināt divas virknes intuitīvu 39 00:01:57,700 --> 00:02:01,050 veids, kā mēs sagaidām, hieroglifs raksturu, mums ir nepieciešams citu tehniku 40 00:02:01,050 --> 00:02:02,300 vispār. 41 00:02:02,300 --> 00:02:03,902