1 00:00:00,000 --> 00:00:00,520 2 00:00:00,520 --> 00:00:03,530 >> Ettekandja: Olgem kirjutada programm, mis küsib kasutajalt kaks stringi ja 3 00:00:03,530 --> 00:00:07,170 siis teatab, kas need stringid on samad või erinevad. 4 00:00:07,170 --> 00:00:10,290 Olen juba hakanud meid siin kutsudes printf kaks korda ja helistades 5 00:00:10,290 --> 00:00:14,520 GetString kaks korda, säilitades tagastamine väärtused s ja t võrra. 6 00:00:14,520 --> 00:00:17,960 >> Nüüd, mu instinktid võrrelda neid kahte stringid oleks kasutada tuttav 7 00:00:17,960 --> 00:00:19,160 võrdõiguslikkuse operaator - 8 00:00:19,160 --> 00:00:22,070 kui s võrdub võrdub t. 9 00:00:22,070 --> 00:00:28,120 Siis ma lähen edasi minna ja print out "Sa kirjutasid sama asja! 10 00:00:28,120 --> 00:00:35,190 Sest kui see pole tõsi, ma olen lihtsalt läheb tüüp printf ("Sa kirjutasid 11 00:00:35,190 --> 00:00:37,880 erinevaid asju! 12 00:00:37,880 --> 00:00:38,850 >> Üsna lihtne - 13 00:00:38,850 --> 00:00:41,820 Ma lihtsalt võrrelda s vastu t, ja kui nad on võrdsed, 14 00:00:41,820 --> 00:00:43,250 väljatrükk nii palju. 15 00:00:43,250 --> 00:00:45,450 Olgem kompileerida ja käivitada see programm. 16 00:00:45,450 --> 00:00:51,950 Tee võrrelda 0 /. Võrrelda 0, midagi öelda, tere, 17 00:00:51,950 --> 00:00:54,200 midagi öelda, tere. 18 00:00:54,200 --> 00:00:56,870 >> Kahjuks programm arvab, et ma olen kirjutada erinevaid asju, kuigi ma 19 00:00:56,870 --> 00:00:59,530 selgelt kirjutatud "tere" samamoodi nii korda. 20 00:00:59,530 --> 00:01:00,850 Nüüd, miks see võiks olla? 21 00:01:00,850 --> 00:01:03,750 >> Noh, tuli välja, et see kõik aeg, stringid olnud natuke rohkem 22 00:01:03,750 --> 00:01:06,780 keerulisem kui märgijada all kapuuts. 23 00:01:06,780 --> 00:01:11,450 Tegelikkuses string on viit või aadress, konkreetselt aadress 24 00:01:11,450 --> 00:01:14,640 on esimene märk, et märgijada. 25 00:01:14,640 --> 00:01:18,640 >> Ja kui me võrdleme s vastu t Võrdsete võrdusmärk, me oleme 26 00:01:18,640 --> 00:01:23,200 tegelikult küsida, on see aadress võrdne võrdne sellele aadressile? 27 00:01:23,200 --> 00:01:26,850 Ja see ei kavatse olla, kui kasutaja on trükitud kahes erinevas 28 00:01:26,850 --> 00:01:30,370 stringid ja me oleme kutsutud getString korda et saada neid, sest mälu 29 00:01:30,370 --> 00:01:34,480 et getString kasutab salvestada esimese string võib olla siin RAM, kuid 30 00:01:34,480 --> 00:01:37,120 mälu getString kasutab salvestada teine ​​string läheb 31 00:01:37,120 --> 00:01:38,760 siin olla RAM. 32 00:01:38,760 --> 00:01:42,380 Ja muidugi, siis need kaks tükke mälu on erinevad aadressid 33 00:01:42,380 --> 00:01:44,220 oma esimest tähemärki. 34 00:01:44,220 --> 00:01:46,120 >> Nii on s võrdne võrdne t? 35 00:01:46,120 --> 00:01:46,885 Noh, ei. 36 00:01:46,885 --> 00:01:50,510 Kui s ja t on suunatud erinevate tükkideks mälu, nagu nad oleks järgi 37 00:01:50,510 --> 00:01:54,140 kutsudes getString kaks korda, nad ei ole, Tegelikult saab olema sama. 38 00:01:54,140 --> 00:01:57,700 Niisiis näib olevat nii, et kuni võrrelda kahte stringi intuitiivne 39 00:01:57,700 --> 00:02:01,050 nii, et me eeldame, hieroglüüf iseloomu, peame teine ​​tehnika 40 00:02:01,050 --> 00:02:02,300 täielikult. 41 00:02:02,300 --> 00:02:03,902