1 00:00:00,000 --> 00:00:00,520 2 00:00:00,520 --> 00:00:03,530 >> SPEAKER: Kirjoitetaan ohjelma, joka kysyy käyttäjältä kaksi merkkijonoa ja 3 00:00:03,530 --> 00:00:07,170 raportoi sitten ovatko nämä jouset ovat samat tai ei ole sama. 4 00:00:07,170 --> 00:00:10,290 Olen jo alkanut meidät täällä kutsuvan printf kahdesti ja kutsuvan 5 00:00:10,290 --> 00:00:14,520 GetString kahdesti, varastointi paluu arvot s ja t, vastaavasti. 6 00:00:14,520 --> 00:00:17,960 >> Nyt minun vaistoni vertailua jouset olisi käyttää tuttuja 7 00:00:17,960 --> 00:00:19,160 yhtäsuuruusoperaattorin - 8 00:00:19,160 --> 00:00:22,070 jos s vastaa vastaa t. 9 00:00:22,070 --> 00:00:28,120 Sitten aion mennä eteenpäin ja tulostaa out "Kirjoitit sama asia! 10 00:00:28,120 --> 00:00:35,190 Else, jos se ei ole totta, olen yksinkertaisesti menossa kirjoittaa printf ("Kirjoitit 11 00:00:35,190 --> 00:00:37,880 eri asioita! 12 00:00:37,880 --> 00:00:38,850 >> Melko yksinkertainen - 13 00:00:38,850 --> 00:00:41,820 Olen yksinkertaisesti vertaamalla s vastaan t, ja jos he tasa-arvoisia, 14 00:00:41,820 --> 00:00:43,250 tulostamalla niin paljon. 15 00:00:43,250 --> 00:00:45,450 Katsotaanpa kääntää ja ajaa tämän ohjelman. 16 00:00:45,450 --> 00:00:51,950 Tee vertailla 0. / Vertaa 0, sanoa jotain, hei, 17 00:00:51,950 --> 00:00:54,200 sanoa jotain, hei. 18 00:00:54,200 --> 00:00:56,870 >> Valitettavasti ohjelma luulee olen kirjoitetaan eri asioita, vaikka olen 19 00:00:56,870 --> 00:00:59,530 selvästi kirjoittanut "hei" samalla tavalla molemmilla kerroilla. 20 00:00:59,530 --> 00:01:00,850 Nyt, miksi se voisi olla? 21 00:01:00,850 --> 00:01:03,750 >> No, käy ilmi, että kaikki tämän aika, jouset ovat olleet hieman 22 00:01:03,750 --> 00:01:06,780 monimutkaisempi kuin merkkijono alla huppu. 23 00:01:06,780 --> 00:01:11,450 Todellisuudessa merkkijono on osoitin tai osoite, nimenomaan osoite 24 00:01:11,450 --> 00:01:14,640 ensimmäisen merkin siitä, että merkkijono. 25 00:01:14,640 --> 00:01:18,640 >> Ja niin kun vertaamme s vastaan ​​t kanssa yhtä yhtäläisyysmerkki, olemme 26 00:01:18,640 --> 00:01:23,200 oikeastaan ​​kysyä, on tämä osoite equal equal tähän osoitteeseen? 27 00:01:23,200 --> 00:01:26,850 Ja se ei tule olemaan, jos käyttäjä on kirjoittanut kahdella eri 28 00:01:26,850 --> 00:01:30,370 jousille ja me olemme kutsuneet getString kahdesti saada niitä, koska muisti 29 00:01:30,370 --> 00:01:34,480 että getString käyttää tallentaa ensin merkkijono voi olla täällä RAM, mutta 30 00:01:34,480 --> 00:01:37,120 muisti, joka getString käyttää tallentaa Toinen merkkijono on menossa 31 00:01:37,120 --> 00:01:38,760 olla täällä RAM. 32 00:01:38,760 --> 00:01:42,380 Ja tietenkin, niin nämä kaksi paloina muisti on eri osoitteet 33 00:01:42,380 --> 00:01:44,220 heidän ensimmäinen merkkiä. 34 00:01:44,220 --> 00:01:46,120 >> Joten on s yhtä yhtä t? 35 00:01:46,120 --> 00:01:46,885 No, no. 36 00:01:46,885 --> 00:01:50,510 Jos s ja t osoittavat eri paloina muistia, koska ne olisivat by 37 00:01:50,510 --> 00:01:54,140 soittamalla getString kahdesti, ne eivät ole, Itse asiassa, tulee olemaan sama. 38 00:01:54,140 --> 00:01:57,700 Niin se näyttää olevan niin, että sen vertailla kahta jousille intuitiivinen 39 00:01:57,700 --> 00:02:01,050 siten, että odotamme, merkin merkki, me tarvitsemme toinen tekniikka 40 00:02:01,050 --> 00:02:02,300 kokonaan. 41 00:02:02,300 --> 00:02:03,902