1 00:00:00,000 --> 00:00:00,520 2 00:00:00,520 --> 00:00:03,530 >> SPEAKER: Ni skribi programon kiu stimulanta la uzanton dum du kordoj kaj 3 00:00:03,530 --> 00:00:07,170 tiam informu cxu tiuj kordoj estas samaj aŭ ne la sama. 4 00:00:07,170 --> 00:00:10,290 Mi jam komencis ni for ĉi tien nomante printf dufoje kaj vokas 5 00:00:10,290 --> 00:00:14,520 GetString dufoje, stokante la reveno valorojn en s kaj t, respektive. 6 00:00:14,520 --> 00:00:17,960 >> Nun, mia instinkto kompari tiujn du kordoj estus uzi la familiaran 7 00:00:17,960 --> 00:00:19,160 egaleco operatoro - 8 00:00:19,160 --> 00:00:22,070 se s egalas egalas t. 9 00:00:22,070 --> 00:00:28,120 Tiam mi tuj iros antaŭen kaj printi el "Vi tajpis la saman aferon! 10 00:00:28,120 --> 00:00:35,190 Alie, se tio ne estas vera, mi simple tuj tajpi printf ("Vi tajpis 11 00:00:35,190 --> 00:00:37,880 malsamaj aferoj! 12 00:00:37,880 --> 00:00:38,850 >> Sufiĉe simpla - 13 00:00:38,850 --> 00:00:41,820 Mi simple komparante s kontraŭ t, kaj se ili estas egalaj, 14 00:00:41,820 --> 00:00:43,250 presi el tiel. 15 00:00:43,250 --> 00:00:45,450 Ni tradukigi kaj ruli tiun programon. 16 00:00:45,450 --> 00:00:51,950 Faru kompari 0. / Kompari 0, diri ion, saluton, 17 00:00:51,950 --> 00:00:54,200 diri ion, saluton. 18 00:00:54,200 --> 00:00:56,870 >> Bedaŭrinde, la programo pensas mi havas tajpitaj malsamaj aferoj, kvankam mi 19 00:00:56,870 --> 00:00:59,530 klare tajpita "saluton" la sammaniere ambaŭ fojojn. 20 00:00:59,530 --> 00:01:00,850 Nu, kial povus esti? 21 00:01:00,850 --> 00:01:03,750 >> Nu, tio rezultas ke ĉio ĉi tempo, kordoj estis iom pli 22 00:01:03,750 --> 00:01:06,780 kompleksa ol vico de signoj sub la kapuĉo. 23 00:01:06,780 --> 00:01:11,450 En realo, ŝnuro estas montrilo aŭ adreso, specife la adreso 24 00:01:11,450 --> 00:01:14,640 de la unua gravulo en tiu vico de signoj. 25 00:01:14,640 --> 00:01:18,640 >> Kaj tial, kiam oni komparas s kontraŭ t kun la egala egalsigno, ni estas 26 00:01:18,640 --> 00:01:23,200 reale demandante, estas jena adreso egala egala al tiu adreso? 27 00:01:23,200 --> 00:01:26,850 Kaj tio ne tuj estos la kazo, se la uzanto tajpas en du malsamaj 28 00:01:26,850 --> 00:01:30,370 kordoj kaj ni nomas GetString dufoje por atingi ilin, ĉar la memoro 29 00:01:30,370 --> 00:01:34,480 ke GetString uzas por stoki la unua kordoj povus esti tie en RAM, sed la 30 00:01:34,480 --> 00:01:37,120 memoro kiun GetString uzas por stoki la duan ŝnuron tuj 31 00:01:37,120 --> 00:01:38,760 esti ĉi tie en RAM. 32 00:01:38,760 --> 00:01:42,380 Kaj kompreneble, do tiuj du pecoj de memoro havas malsamajn direktojn por 33 00:01:42,380 --> 00:01:44,220 iliaj unuaj signoj. 34 00:01:44,220 --> 00:01:46,120 >> Do estas s egalaj egala al t? 35 00:01:46,120 --> 00:01:46,885 Nu, ne. 36 00:01:46,885 --> 00:01:50,510 Se s kaj t estas indikante malsamajn pecoj de la memoro, kiel ili estus por 37 00:01:50,510 --> 00:01:54,140 nomante GetString dufoje, ili ne estas, fakte, tuj estos la sama. 38 00:01:54,140 --> 00:01:57,700 Do ĝi ŝajnas esti la kazo, ke al komparu du kordoj en la intuicia 39 00:01:57,700 --> 00:02:01,050 vojo, ke ni atendas, karaktero por karaktero, ni bezonas alian teknikon 40 00:02:01,050 --> 00:02:02,300 aro. 41 00:02:02,300 --> 00:02:03,902